Created
September 27, 2025 09:12
-
-
Save NTT123/05f603c748e5f26bbc07bb636883e9ee to your computer and use it in GitHub Desktop.
print-cute-tv-layout.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "nbformat": 4, | |
| "nbformat_minor": 0, | |
| "metadata": { | |
| "colab": { | |
| "provenance": [], | |
| "gpuType": "T4", | |
| "authorship_tag": "ABX9TyP3P4GIbeDxQsenxLkWNYG6", | |
| "include_colab_link": true | |
| }, | |
| "kernelspec": { | |
| "name": "python3", | |
| "display_name": "Python 3" | |
| }, | |
| "language_info": { | |
| "name": "python" | |
| }, | |
| "accelerator": "GPU" | |
| }, | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "view-in-github", | |
| "colab_type": "text" | |
| }, | |
| "source": [ | |
| "<a href=\"https://colab.research.google.com/gist/NTT123/05f603c748e5f26bbc07bb636883e9ee/print-cute-tv-layout.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "!nvidia-smi -L\n", | |
| "%pip uninstall -yq cuda-python\n", | |
| "%pip install -Uq nvidia-cutlass-dsl==4.2.0 cuda-bindings==12.9.1 cuda-python==12.9.1 svgwrite\n", | |
| "import sys; sys.path.append(\"/usr/local/lib/python3.12/dist-packages/nvidia_cutlass_dsl/python_packages/\")" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "ocmElKJgax6W", | |
| "outputId": "419df34a-71c9-4002-e96e-8cfffc9c72ca" | |
| }, | |
| "execution_count": 1, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "GPU 0: Tesla T4 (UUID: GPU-659f9965-633f-7d6d-2a07-bda9ed5f0618)\n", | |
| "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m62.2/62.2 MB\u001b[0m \u001b[31m18.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", | |
| "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.4/12.4 MB\u001b[0m \u001b[31m132.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", | |
| "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m67.1/67.1 kB\u001b[0m \u001b[31m7.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", | |
| "\u001b[?25h" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "def render_layout_svg(layout, output_file):\n", | |
| " import numpy as np\n", | |
| " import svgwrite\n", | |
| " from cutlass.cute import size\n", | |
| "\n", | |
| " # 8 RBG-255 Greyscale colors\n", | |
| " rgb_255_colors = [\n", | |
| " (255, 255, 255),\n", | |
| " (230, 230, 230),\n", | |
| " (205, 205, 205),\n", | |
| " (180, 180, 180),\n", | |
| " (155, 155, 155),\n", | |
| " (130, 130, 130),\n", | |
| " (105, 105, 105),\n", | |
| " (80, 80, 80),\n", | |
| " ]\n", | |
| "\n", | |
| " # Cell size in pixels\n", | |
| " cell_size = 20\n", | |
| "\n", | |
| " # Grid size\n", | |
| " M, N = size(layout[0]), size(layout[1])\n", | |
| "\n", | |
| " # Create SVG canvas\n", | |
| " dwg = svgwrite.Drawing(output_file, size=(N * cell_size, M * cell_size))\n", | |
| "\n", | |
| " # Draw grid cells\n", | |
| " for i in range(M):\n", | |
| " for j in range(N):\n", | |
| " idx = layout((i, j))\n", | |
| " x = j * cell_size\n", | |
| " y = i * cell_size\n", | |
| "\n", | |
| " # Draw rectangle\n", | |
| " dwg.add(\n", | |
| " dwg.rect(\n", | |
| " insert=(x, y),\n", | |
| " size=(cell_size, cell_size),\n", | |
| " fill=svgwrite.rgb(\n", | |
| " *rgb_255_colors[idx % len(rgb_255_colors)], mode=\"RGB\"\n", | |
| " ),\n", | |
| " stroke=\"black\",\n", | |
| " )\n", | |
| " )\n", | |
| "\n", | |
| " # Add label text\n", | |
| " dwg.add(\n", | |
| " dwg.text(\n", | |
| " str(idx),\n", | |
| " insert=(x + cell_size // 2, y + cell_size // 2),\n", | |
| " text_anchor=\"middle\",\n", | |
| " alignment_baseline=\"central\",\n", | |
| " font_size=\"8px\",\n", | |
| " )\n", | |
| " )\n", | |
| "\n", | |
| " dwg.save()" | |
| ], | |
| "metadata": { | |
| "id": "EAnB3Skgd4dh" | |
| }, | |
| "execution_count": 2, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "def render_tv_layout_svg(layout, tile_mn, output_file):\n", | |
| " import numpy as np\n", | |
| " import svgwrite\n", | |
| " from cutlass.cute import size, rank, make_identity_tensor\n", | |
| "\n", | |
| " assert rank(layout) == 2, \"Expected a rank-2 TV Layout\"\n", | |
| " assert rank(tile_mn) == 2, \"Expected a rank-2 MN Tile\"\n", | |
| "\n", | |
| " coord = make_identity_tensor(tile_mn)\n", | |
| " layout = cute.composition(coord, layout)\n", | |
| " # assert congruent(coprofile(layout), (0,0)), \"Expected a 2D codomain (tid,vid) -> (m,n)\"\n", | |
| "\n", | |
| " # 8 RGB-255 colors, TODO Generalize\n", | |
| " rgb_255_colors = [\n", | |
| " (175, 175, 255),\n", | |
| " (175, 255, 175),\n", | |
| " (255, 255, 175),\n", | |
| " (255, 175, 175),\n", | |
| " (210, 210, 255),\n", | |
| " (210, 255, 210),\n", | |
| " (255, 255, 210),\n", | |
| " (255, 210, 210),\n", | |
| " ]\n", | |
| "\n", | |
| " # Cell size in pixels\n", | |
| " cell_size = 20\n", | |
| "\n", | |
| " # Grid size\n", | |
| " M, N = size(tile_mn[0]), size(tile_mn[1])\n", | |
| " filled = np.zeros((M, N), dtype=bool)\n", | |
| "\n", | |
| " # Create SVG canvas\n", | |
| " dwg = svgwrite.Drawing(output_file, size=(N * cell_size, M * cell_size))\n", | |
| "\n", | |
| " # Fill in grid\n", | |
| " for i in range(M):\n", | |
| " for j in range(N):\n", | |
| " dwg.add(\n", | |
| " dwg.rect(\n", | |
| " insert=(j * cell_size, i * cell_size),\n", | |
| " size=(cell_size, cell_size),\n", | |
| " fill=\"white\",\n", | |
| " stroke=\"black\",\n", | |
| " )\n", | |
| " )\n", | |
| "\n", | |
| " # Draw TV cells\n", | |
| " for tid in range(size(layout, mode=[0])):\n", | |
| " for vid in range(size(layout, mode=[1])):\n", | |
| " i, j = layout[(tid, vid)]\n", | |
| " x = j * cell_size\n", | |
| " y = i * cell_size\n", | |
| "\n", | |
| " if filled[i, j]:\n", | |
| " continue\n", | |
| " filled[i, j] = True\n", | |
| "\n", | |
| " # Draw rectangle\n", | |
| " dwg.add(\n", | |
| " dwg.rect(\n", | |
| " insert=(x, y),\n", | |
| " size=(cell_size, cell_size),\n", | |
| " fill=svgwrite.rgb(\n", | |
| " *rgb_255_colors[tid % len(rgb_255_colors)], mode=\"RGB\"\n", | |
| " ),\n", | |
| " stroke=\"black\",\n", | |
| " )\n", | |
| " )\n", | |
| "\n", | |
| " # Add label text\n", | |
| " dwg.add(\n", | |
| " dwg.text(\n", | |
| " f\"T{tid}\",\n", | |
| " insert=(x + cell_size // 2, y + 1 * cell_size // 4),\n", | |
| " text_anchor=\"middle\",\n", | |
| " alignment_baseline=\"central\",\n", | |
| " font_size=\"8px\",\n", | |
| " )\n", | |
| " )\n", | |
| " dwg.add(\n", | |
| " dwg.text(\n", | |
| " f\"V{vid}\",\n", | |
| " insert=(x + cell_size // 2, y + 3 * cell_size // 4),\n", | |
| " text_anchor=\"middle\",\n", | |
| " alignment_baseline=\"central\",\n", | |
| " font_size=\"8px\",\n", | |
| " )\n", | |
| " )\n", | |
| "\n", | |
| " dwg.save()" | |
| ], | |
| "metadata": { | |
| "id": "EMKv180Rr-PI" | |
| }, | |
| "execution_count": 3, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "from cutlass import cute\n", | |
| "\n", | |
| "@cute.jit\n", | |
| "def run():\n", | |
| " layout = cute.make_layout((4, 6), stride=(3, 1))\n", | |
| " render_layout_svg(layout, \"layout.svg\")\n", | |
| "\n", | |
| " tile_mn = (8, 8)\n", | |
| " tv_layout = cute.make_layout(\n", | |
| " shape=((2, 2, 2), (2, 2, 2)), stride=((1, 16, 4), (8, 2, 32))\n", | |
| " )\n", | |
| " render_tv_layout_svg(tv_layout, tile_mn, \"tv_layout.svg\")\n", | |
| "\n", | |
| "\n", | |
| "run()" | |
| ], | |
| "metadata": { | |
| "id": "okTPX5yca0Am" | |
| }, | |
| "execution_count": 4, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "def display_svg(file_path):\n", | |
| " from IPython.display import SVG, display\n", | |
| "\n", | |
| " with open(file_path, \"r\") as f:\n", | |
| " svg_content = f.read()\n", | |
| "\n", | |
| " return display(SVG(svg_content))" | |
| ], | |
| "metadata": { | |
| "id": "EP-D7c6HW6rZ" | |
| }, | |
| "execution_count": 5, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "display_svg(\"layout.svg\")" | |
| ], | |
| "metadata": { | |
| "id": "4zcAfDM1cycw", | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 101 | |
| }, | |
| "outputId": "5b200546-f6dc-4ee7-98ef-330cdbb5b52f" | |
| }, | |
| "execution_count": 6, | |
| "outputs": [ | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<IPython.core.display.SVG object>" | |
| ], | |
| "image/svg+xml": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:ev=\"http://www.w3.org/2001/xml-events\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" baseProfile=\"full\" height=\"80\" version=\"1.1\" width=\"120\"><defs/><rect fill=\"rgb(255,255,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"10\">0</text><rect fill=\"rgb(230,230,230)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"10\">1</text><rect fill=\"rgb(205,205,205)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"10\">2</text><rect fill=\"rgb(180,180,180)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"10\">3</text><rect fill=\"rgb(155,155,155)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"10\">4</text><rect fill=\"rgb(130,130,130)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"10\">5</text><rect fill=\"rgb(180,180,180)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"30\">3</text><rect fill=\"rgb(155,155,155)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"30\">4</text><rect fill=\"rgb(130,130,130)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"30\">5</text><rect fill=\"rgb(105,105,105)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"30\">6</text><rect fill=\"rgb(80,80,80)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"30\">7</text><rect fill=\"rgb(255,255,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"30\">8</text><rect fill=\"rgb(105,105,105)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"50\">6</text><rect fill=\"rgb(80,80,80)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"50\">7</text><rect fill=\"rgb(255,255,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"50\">8</text><rect fill=\"rgb(230,230,230)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"50\">9</text><rect fill=\"rgb(205,205,205)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"50\">10</text><rect fill=\"rgb(180,180,180)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"50\">11</text><rect fill=\"rgb(230,230,230)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"70\">9</text><rect fill=\"rgb(205,205,205)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"70\">10</text><rect fill=\"rgb(180,180,180)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"70\">11</text><rect fill=\"rgb(155,155,155)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"70\">12</text><rect fill=\"rgb(130,130,130)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"70\">13</text><rect fill=\"rgb(105,105,105)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"70\">14</text></svg>" | |
| }, | |
| "metadata": {} | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "display_svg(\"tv_layout.svg\")" | |
| ], | |
| "metadata": { | |
| "id": "KsifOBN9dlQc", | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 181 | |
| }, | |
| "outputId": "e0a91df5-8a37-4a24-c9af-3e729b472f9c" | |
| }, | |
| "execution_count": 7, | |
| "outputs": [ | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<IPython.core.display.SVG object>" | |
| ], | |
| "image/svg+xml": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:ev=\"http://www.w3.org/2001/xml-events\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" baseProfile=\"full\" height=\"160\" version=\"1.1\" width=\"160\"><defs/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"0\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"0\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"0\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"0\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"0\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"0\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"0\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"0\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"20\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"20\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"20\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"20\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"20\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"20\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"20\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"20\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"40\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"40\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"40\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"40\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"40\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"40\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"40\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"40\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"60\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"60\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"60\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"60\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"60\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"60\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"60\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"60\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"80\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"80\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"80\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"80\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"80\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"80\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"80\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"80\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"100\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"100\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"100\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"100\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"100\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"100\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"100\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"100\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"120\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"120\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"120\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"120\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"120\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"120\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"120\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"120\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"140\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"140\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"140\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"140\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"140\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"140\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"140\"/><rect fill=\"white\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"140\"/><rect fill=\"rgb(175,175,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"5\">T0</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"15\">V0</text><rect fill=\"rgb(175,175,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"5\">T0</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"15\">V1</text><rect fill=\"rgb(175,175,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"45\">T0</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"55\">V2</text><rect fill=\"rgb(175,175,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"45\">T0</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"55\">V3</text><rect fill=\"rgb(175,175,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"5\">T0</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"15\">V4</text><rect fill=\"rgb(175,175,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"5\">T0</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"15\">V5</text><rect fill=\"rgb(175,175,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"45\">T0</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"55\">V6</text><rect fill=\"rgb(175,175,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"45\">T0</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"55\">V7</text><rect fill=\"rgb(175,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"25\">T1</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"35\">V0</text><rect fill=\"rgb(175,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"25\">T1</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"35\">V1</text><rect fill=\"rgb(175,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"65\">T1</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"75\">V2</text><rect fill=\"rgb(175,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"65\">T1</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"75\">V3</text><rect fill=\"rgb(175,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"25\">T1</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"35\">V4</text><rect fill=\"rgb(175,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"25\">T1</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"35\">V5</text><rect fill=\"rgb(175,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"65\">T1</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"75\">V6</text><rect fill=\"rgb(175,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"65\">T1</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"75\">V7</text><rect fill=\"rgb(255,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"5\">T2</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"15\">V0</text><rect fill=\"rgb(255,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"5\">T2</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"15\">V1</text><rect fill=\"rgb(255,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"45\">T2</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"55\">V2</text><rect fill=\"rgb(255,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"45\">T2</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"55\">V3</text><rect fill=\"rgb(255,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"5\">T2</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"15\">V4</text><rect fill=\"rgb(255,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"0\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"5\">T2</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"15\">V5</text><rect fill=\"rgb(255,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"45\">T2</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"55\">V6</text><rect fill=\"rgb(255,255,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"40\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"45\">T2</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"55\">V7</text><rect fill=\"rgb(255,175,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"25\">T3</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"35\">V0</text><rect fill=\"rgb(255,175,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"25\">T3</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"35\">V1</text><rect fill=\"rgb(255,175,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"65\">T3</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"75\">V2</text><rect fill=\"rgb(255,175,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"65\">T3</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"75\">V3</text><rect fill=\"rgb(255,175,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"25\">T3</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"35\">V4</text><rect fill=\"rgb(255,175,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"20\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"25\">T3</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"35\">V5</text><rect fill=\"rgb(255,175,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"65\">T3</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"75\">V6</text><rect fill=\"rgb(255,175,175)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"60\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"65\">T3</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"75\">V7</text><rect fill=\"rgb(210,210,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"80\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"85\">T4</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"95\">V0</text><rect fill=\"rgb(210,210,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"80\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"85\">T4</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"95\">V1</text><rect fill=\"rgb(210,210,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"120\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"125\">T4</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"135\">V2</text><rect fill=\"rgb(210,210,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"120\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"125\">T4</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"135\">V3</text><rect fill=\"rgb(210,210,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"80\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"85\">T4</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"95\">V4</text><rect fill=\"rgb(210,210,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"80\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"85\">T4</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"95\">V5</text><rect fill=\"rgb(210,210,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"120\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"125\">T4</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"135\">V6</text><rect fill=\"rgb(210,210,255)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"120\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"125\">T4</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"135\">V7</text><rect fill=\"rgb(210,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"100\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"105\">T5</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"115\">V0</text><rect fill=\"rgb(210,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"100\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"105\">T5</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"115\">V1</text><rect fill=\"rgb(210,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"0\" y=\"140\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"145\">T5</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"10\" y=\"155\">V2</text><rect fill=\"rgb(210,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"20\" y=\"140\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"145\">T5</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"30\" y=\"155\">V3</text><rect fill=\"rgb(210,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"100\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"105\">T5</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"115\">V4</text><rect fill=\"rgb(210,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"100\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"105\">T5</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"115\">V5</text><rect fill=\"rgb(210,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"80\" y=\"140\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"145\">T5</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"90\" y=\"155\">V6</text><rect fill=\"rgb(210,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"100\" y=\"140\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"145\">T5</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"110\" y=\"155\">V7</text><rect fill=\"rgb(255,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"80\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"85\">T6</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"95\">V0</text><rect fill=\"rgb(255,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"80\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"85\">T6</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"95\">V1</text><rect fill=\"rgb(255,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"120\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"125\">T6</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"135\">V2</text><rect fill=\"rgb(255,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"120\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"125\">T6</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"135\">V3</text><rect fill=\"rgb(255,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"80\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"85\">T6</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"95\">V4</text><rect fill=\"rgb(255,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"80\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"85\">T6</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"95\">V5</text><rect fill=\"rgb(255,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"120\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"125\">T6</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"135\">V6</text><rect fill=\"rgb(255,255,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"120\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"125\">T6</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"135\">V7</text><rect fill=\"rgb(255,210,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"100\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"105\">T7</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"115\">V0</text><rect fill=\"rgb(255,210,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"100\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"105\">T7</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"115\">V1</text><rect fill=\"rgb(255,210,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"40\" y=\"140\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"145\">T7</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"50\" y=\"155\">V2</text><rect fill=\"rgb(255,210,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"60\" y=\"140\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"145\">T7</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"70\" y=\"155\">V3</text><rect fill=\"rgb(255,210,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"100\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"105\">T7</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"115\">V4</text><rect fill=\"rgb(255,210,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"100\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"105\">T7</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"115\">V5</text><rect fill=\"rgb(255,210,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"120\" y=\"140\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"145\">T7</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"130\" y=\"155\">V6</text><rect fill=\"rgb(255,210,210)\" height=\"20\" stroke=\"black\" width=\"20\" x=\"140\" y=\"140\"/><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"145\">T7</text><text alignment-baseline=\"central\" font-size=\"8px\" text-anchor=\"middle\" x=\"150\" y=\"155\">V7</text></svg>" | |
| }, | |
| "metadata": {} | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [], | |
| "metadata": { | |
| "id": "YOV7Dtk1Z-nk" | |
| }, | |
| "execution_count": 7, | |
| "outputs": [] | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is a slightly modified version of @ccecka's implementation at NVIDIA/cutlass#2453 (comment)