[GH-PAGES] Updated website

This commit is contained in:
Philippe Tillet
2021-08-21 00:13:44 +00:00
parent c174a88ef4
commit 68f3257c44
19 changed files with 89 additions and 89 deletions

View File

@@ -55,7 +55,7 @@ def add(x: torch.Tensor, y: torch.Tensor):
# We need to preallocate the output
output = torch.empty_like(x)
assert x.is_cuda and y.is_cuda and output.is_cuda
n_elements = output.shape[0]
n_elements = output.numel()
# The SPMD launch grid denotes the number of kernel instances that run in parallel.
# It is analogous to CUDA launch grids. It can be either Tuple[int], or Callable(metaparameters) -> Tuple[int]
# In this case, we use a 1D grid where the size is the number of blocks

View File

@@ -51,7 +51,7 @@
},
"outputs": [],
"source": [
"def add(x: torch.Tensor, y: torch.Tensor):\n # We need to preallocate the output\n output = torch.empty_like(x)\n assert x.is_cuda and y.is_cuda and output.is_cuda\n n_elements = output.shape[0]\n # The SPMD launch grid denotes the number of kernel instances that run in parallel.\n # It is analogous to CUDA launch grids. It can be either Tuple[int], or Callable(metaparameters) -> Tuple[int]\n # In this case, we use a 1D grid where the size is the number of blocks\n grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),)\n # NOTE:\n # - each torch.tensor object is implicitly converted into a pointer to its first element.\n # - `triton.jit`'ed functions can be index with a launch grid to obtain a callable GPU kernel\n # - don't forget to pass meta-parameters as keywords arguments\n add_kernel[grid](x, y, output, n_elements, BLOCK_SIZE=1024)\n # We return a handle to z but, since `torch.cuda.synchronize()` hasn't been called, the kernel is still\n # running asynchronously at this point.\n return output"
"def add(x: torch.Tensor, y: torch.Tensor):\n # We need to preallocate the output\n output = torch.empty_like(x)\n assert x.is_cuda and y.is_cuda and output.is_cuda\n n_elements = output.numel()\n # The SPMD launch grid denotes the number of kernel instances that run in parallel.\n # It is analogous to CUDA launch grids. It can be either Tuple[int], or Callable(metaparameters) -> Tuple[int]\n # In this case, we use a 1D grid where the size is the number of blocks\n grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),)\n # NOTE:\n # - each torch.tensor object is implicitly converted into a pointer to its first element.\n # - `triton.jit`'ed functions can be index with a launch grid to obtain a callable GPU kernel\n # - don't forget to pass meta-parameters as keywords arguments\n add_kernel[grid](x, y, output, n_elements, BLOCK_SIZE=1024)\n # We return a handle to z but, since `torch.cuda.synchronize()` hasn't been called, the kernel is still\n # running asynchronously at this point.\n return output"
]
},
{

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -92,7 +92,7 @@ and (2) enqueue the above kernel with appropriate grid/block sizes.
# We need to preallocate the output
output = torch.empty_like(x)
assert x.is_cuda and y.is_cuda and output.is_cuda
n_elements = output.shape[0]
n_elements = output.numel()
# The SPMD launch grid denotes the number of kernel instances that run in parallel.
# It is analogous to CUDA launch grids. It can be either Tuple[int], or Callable(metaparameters) -> Tuple[int]
# In this case, we use a 1D grid where the size is the number of blocks
@@ -234,17 +234,17 @@ We can now run the decorated function above. Pass `print_data=True` to see the p
0 4096.0 9.600000 9.600000
1 8192.0 19.200000 19.200000
2 16384.0 38.400001 38.400001
3 32768.0 63.999998 76.800002
3 32768.0 63.999998 63.999998
4 65536.0 127.999995 127.999995
5 131072.0 219.428568 219.428568
6 262144.0 384.000001 384.000001
6 262144.0 341.333321 384.000001
7 524288.0 472.615390 472.615390
8 1048576.0 614.400016 614.400016
9 2097152.0 722.823517 722.823517
10 4194304.0 780.190482 780.190482
11 8388608.0 812.429770 812.429770
12 16777216.0 833.084721 833.084721
13 33554432.0 843.811163 842.004273
13 33554432.0 843.811163 843.811163
14 67108864.0 849.278610 848.362445
15 134217728.0 851.577704 850.656574
@@ -254,7 +254,7 @@ We can now run the decorated function above. Pass `print_data=True` to see the p
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 0 minutes 12.966 seconds)
**Total running time of the script:** ( 0 minutes 11.041 seconds)
.. _sphx_glr_download_getting-started_tutorials_01-vector-add.py:

View File

@@ -302,15 +302,15 @@ We will then compare its performance against (1) :code:`torch.softmax` and (2) t
N Triton Torch (native) Torch (jit)
0 256.0 512.000001 546.133347 186.181817
1 384.0 585.142862 585.142862 153.600004
2 512.0 630.153853 585.142849 154.566038
3 640.0 660.645170 640.000002 158.759699
4 768.0 702.171410 664.216187 162.754967
2 512.0 630.153853 606.814814 154.566038
3 640.0 682.666684 640.000002 160.000000
4 768.0 702.171410 664.216187 163.839992
.. ... ... ... ...
93 12160.0 812.359066 406.179533 198.733401
94 12288.0 812.429770 415.661740 198.995960
95 12416.0 810.840807 411.296057 198.655991
96 12544.0 810.925276 412.971190 198.815254
97 12672.0 809.389265 412.097543 198.873965
93 12160.0 812.359066 406.179533 199.038365
94 12288.0 812.429770 416.101597 199.298541
95 12416.0 810.840807 412.149375 198.954424
96 12544.0 810.925276 412.971190 199.111113
97 12672.0 809.389265 412.097543 199.264875
[98 rows x 4 columns]
@@ -328,7 +328,7 @@ In the above plot, we can see that:
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 1 minutes 12.677 seconds)
**Total running time of the script:** ( 1 minutes 13.141 seconds)
.. _sphx_glr_download_getting-started_tutorials_02-fused-softmax.py:

View File

@@ -462,37 +462,37 @@ We can now compare the performance of our kernel against that of cuBLAS. Here we
matmul-performance:
M cuBLAS ... Triton Triton (+ LeakyReLU)
0 256.0 2.730667 ... 3.276800 3.276800
1 384.0 7.372800 ... 8.507077 8.507077
0 256.0 2.978909 ... 2.978909 2.978909
1 384.0 7.372800 ... 8.507077 7.899428
2 512.0 14.563555 ... 15.420235 15.420235
3 640.0 22.260869 ... 24.380953 24.380953
4 768.0 32.768000 ... 34.028308 34.028308
5 896.0 39.025776 ... 40.140799 39.025776
6 1024.0 49.932191 ... 53.773130 52.428801
7 1152.0 44.566925 ... 46.656000 45.938215
8 1280.0 51.200001 ... 56.109587 56.109587
9 1408.0 64.138541 ... 64.902096 64.138541
10 1536.0 78.643199 ... 76.106321 76.106321
11 1664.0 62.929456 ... 62.061463 62.061463
12 1792.0 72.983276 ... 69.810085 69.379162
13 1920.0 69.120002 ... 70.530615 70.530615
14 2048.0 73.908442 ... 75.234154 68.487170
15 2176.0 82.813365 ... 77.998640 79.855747
7 1152.0 44.566925 ... 46.656000 46.656000
8 1280.0 51.200001 ... 56.888887 56.109587
9 1408.0 64.138541 ... 64.902096 64.902096
10 1536.0 80.430545 ... 76.933564 76.106321
11 1664.0 63.372618 ... 62.492442 62.492442
12 1792.0 72.983276 ... 70.246402 69.810085
13 1920.0 65.207547 ... 69.467336 67.764707
14 2048.0 73.908442 ... 74.898285 73.584279
15 2176.0 82.813365 ... 81.143743 81.143743
16 2304.0 68.446623 ... 73.728002 73.501144
17 2432.0 71.305746 ... 82.147552 81.908060
18 2560.0 77.649287 ... 76.027843 77.465723
19 2688.0 78.536346 ... 82.284288 80.880718
20 2816.0 82.602666 ... 77.605356 79.443003
21 2944.0 81.431424 ... 80.122235 76.670818
22 3072.0 81.472093 ... 82.903517 82.181572
23 3200.0 83.116885 ... 85.106381 88.642656
24 3328.0 84.101981 ... 86.424125 84.895397
25 3456.0 81.849303 ... 81.766291 85.950501
26 3584.0 87.127323 ... 88.761490 90.549237
27 3712.0 85.822459 ... 81.883070 84.088676
28 3840.0 84.679936 ... 88.615388 88.402879
29 3968.0 92.512459 ... 87.850207 87.787005
30 4096.0 93.271527 ... 83.313299 90.626421
18 2560.0 77.649287 ... 77.465723 77.465723
19 2688.0 80.027544 ... 81.401408 81.576466
20 2816.0 81.369790 ... 79.879498 79.443003
21 2944.0 83.060049 ... 78.979452 77.265163
22 3072.0 82.540970 ... 82.782312 82.181572
23 3200.0 82.368085 ... 86.253369 90.523334
24 3328.0 83.613586 ... 82.653612 82.088138
25 3456.0 81.849303 ... 85.133652 84.775569
26 3584.0 87.551500 ... 94.747514 92.220917
27 3712.0 81.482335 ... 84.230479 82.971218
28 3840.0 81.138664 ... 84.292684 83.027026
29 3968.0 89.068569 ... 84.562670 80.864108
30 4096.0 92.948562 ... 89.717734 90.018600
[31 rows x 5 columns]
@@ -502,7 +502,7 @@ We can now compare the performance of our kernel against that of cuBLAS. Here we
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 2 minutes 5.134 seconds)
**Total running time of the script:** ( 2 minutes 12.082 seconds)
.. _sphx_glr_download_getting-started_tutorials_03-matrix-multiplication.py:

View File

@@ -5,12 +5,12 @@
Computation times
=================
**03:30.777** total execution time for **getting-started_tutorials** files:
**03:36.265** total execution time for **getting-started_tutorials** files:
+---------------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` (``03-matrix-multiplication.py``) | 02:05.134 | 0.0 MB |
| :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` (``03-matrix-multiplication.py``) | 02:12.082 | 0.0 MB |
+---------------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` (``02-fused-softmax.py``) | 01:12.677 | 0.0 MB |
| :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` (``02-fused-softmax.py``) | 01:13.141 | 0.0 MB |
+---------------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_getting-started_tutorials_01-vector-add.py` (``01-vector-add.py``) | 00:12.966 | 0.0 MB |
| :ref:`sphx_glr_getting-started_tutorials_01-vector-add.py` (``01-vector-add.py``) | 00:11.041 | 0.0 MB |
+---------------------------------------------------------------------------------------------------------+-----------+--------+

View File

@@ -240,7 +240,7 @@ and (2) enqueue the above kernel with appropriate grid/block sizes.</p>
<span class="c1"># We need to preallocate the output</span>
<span class="n">output</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">empty_like</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
<span class="k">assert</span> <span class="n">x</span><span class="o">.</span><span class="n">is_cuda</span> <span class="ow">and</span> <span class="n">y</span><span class="o">.</span><span class="n">is_cuda</span> <span class="ow">and</span> <span class="n">output</span><span class="o">.</span><span class="n">is_cuda</span>
<span class="n">n_elements</span> <span class="o">=</span> <span class="n">output</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">n_elements</span> <span class="o">=</span> <span class="n">output</span><span class="o">.</span><span class="n">numel</span><span class="p">()</span>
<span class="c1"># The SPMD launch grid denotes the number of kernel instances that run in parallel.</span>
<span class="c1"># It is analogous to CUDA launch grids. It can be either Tuple[int], or Callable(metaparameters) -&gt; Tuple[int]</span>
<span class="c1"># In this case, we use a 1D grid where the size is the number of blocks</span>
@@ -322,22 +322,22 @@ for different problem sizes.</p>
0 4096.0 9.600000 9.600000
1 8192.0 19.200000 19.200000
2 16384.0 38.400001 38.400001
3 32768.0 63.999998 76.800002
3 32768.0 63.999998 63.999998
4 65536.0 127.999995 127.999995
5 131072.0 219.428568 219.428568
6 262144.0 384.000001 384.000001
6 262144.0 341.333321 384.000001
7 524288.0 472.615390 472.615390
8 1048576.0 614.400016 614.400016
9 2097152.0 722.823517 722.823517
10 4194304.0 780.190482 780.190482
11 8388608.0 812.429770 812.429770
12 16777216.0 833.084721 833.084721
13 33554432.0 843.811163 842.004273
13 33554432.0 843.811163 843.811163
14 67108864.0 849.278610 848.362445
15 134217728.0 851.577704 850.656574
</pre></div>
</div>
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 0 minutes 12.966 seconds)</p>
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 0 minutes 11.041 seconds)</p>
<div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-getting-started-tutorials-01-vector-add-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/62d97d49a32414049819dd8bb8378080/01-vector-add.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">01-vector-add.py</span></code></a></p>

View File

@@ -387,15 +387,15 @@ We will then compare its performance against (1) <code class="code docutils lite
N Triton Torch (native) Torch (jit)
0 256.0 512.000001 546.133347 186.181817
1 384.0 585.142862 585.142862 153.600004
2 512.0 630.153853 585.142849 154.566038
3 640.0 660.645170 640.000002 158.759699
4 768.0 702.171410 664.216187 162.754967
2 512.0 630.153853 606.814814 154.566038
3 640.0 682.666684 640.000002 160.000000
4 768.0 702.171410 664.216187 163.839992
.. ... ... ... ...
93 12160.0 812.359066 406.179533 198.733401
94 12288.0 812.429770 415.661740 198.995960
95 12416.0 810.840807 411.296057 198.655991
96 12544.0 810.925276 412.971190 198.815254
97 12672.0 809.389265 412.097543 198.873965
93 12160.0 812.359066 406.179533 199.038365
94 12288.0 812.429770 416.101597 199.298541
95 12416.0 810.840807 412.149375 198.954424
96 12544.0 810.925276 412.971190 199.111113
97 12672.0 809.389265 412.097543 199.264875
[98 rows x 4 columns]
</pre></div>
@@ -408,7 +408,7 @@ We will then compare its performance against (1) <code class="code docutils lite
Note however that the PyTorch <cite>softmax</cite> operation is more general and will works on tensors of any shape.</p></li>
</ul>
</div></blockquote>
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 12.677 seconds)</p>
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 13.141 seconds)</p>
<div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-getting-started-tutorials-02-fused-softmax-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/d91442ac2982c4e0cc3ab0f43534afbc/02-fused-softmax.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">02-fused-softmax.py</span></code></a></p>

View File

@@ -566,42 +566,42 @@ torch_output=tensor([[ 1.1045, -36.9688, 31.4688, ..., -11.3906, 24.4531, -3
<p class="sphx-glr-script-out">Out:</p>
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>matmul-performance:
M cuBLAS ... Triton Triton (+ LeakyReLU)
0 256.0 2.730667 ... 3.276800 3.276800
1 384.0 7.372800 ... 8.507077 8.507077
0 256.0 2.978909 ... 2.978909 2.978909
1 384.0 7.372800 ... 8.507077 7.899428
2 512.0 14.563555 ... 15.420235 15.420235
3 640.0 22.260869 ... 24.380953 24.380953
4 768.0 32.768000 ... 34.028308 34.028308
5 896.0 39.025776 ... 40.140799 39.025776
6 1024.0 49.932191 ... 53.773130 52.428801
7 1152.0 44.566925 ... 46.656000 45.938215
8 1280.0 51.200001 ... 56.109587 56.109587
9 1408.0 64.138541 ... 64.902096 64.138541
10 1536.0 78.643199 ... 76.106321 76.106321
11 1664.0 62.929456 ... 62.061463 62.061463
12 1792.0 72.983276 ... 69.810085 69.379162
13 1920.0 69.120002 ... 70.530615 70.530615
14 2048.0 73.908442 ... 75.234154 68.487170
15 2176.0 82.813365 ... 77.998640 79.855747
7 1152.0 44.566925 ... 46.656000 46.656000
8 1280.0 51.200001 ... 56.888887 56.109587
9 1408.0 64.138541 ... 64.902096 64.902096
10 1536.0 80.430545 ... 76.933564 76.106321
11 1664.0 63.372618 ... 62.492442 62.492442
12 1792.0 72.983276 ... 70.246402 69.810085
13 1920.0 65.207547 ... 69.467336 67.764707
14 2048.0 73.908442 ... 74.898285 73.584279
15 2176.0 82.813365 ... 81.143743 81.143743
16 2304.0 68.446623 ... 73.728002 73.501144
17 2432.0 71.305746 ... 82.147552 81.908060
18 2560.0 77.649287 ... 76.027843 77.465723
19 2688.0 78.536346 ... 82.284288 80.880718
20 2816.0 82.602666 ... 77.605356 79.443003
21 2944.0 81.431424 ... 80.122235 76.670818
22 3072.0 81.472093 ... 82.903517 82.181572
23 3200.0 83.116885 ... 85.106381 88.642656
24 3328.0 84.101981 ... 86.424125 84.895397
25 3456.0 81.849303 ... 81.766291 85.950501
26 3584.0 87.127323 ... 88.761490 90.549237
27 3712.0 85.822459 ... 81.883070 84.088676
28 3840.0 84.679936 ... 88.615388 88.402879
29 3968.0 92.512459 ... 87.850207 87.787005
30 4096.0 93.271527 ... 83.313299 90.626421
18 2560.0 77.649287 ... 77.465723 77.465723
19 2688.0 80.027544 ... 81.401408 81.576466
20 2816.0 81.369790 ... 79.879498 79.443003
21 2944.0 83.060049 ... 78.979452 77.265163
22 3072.0 82.540970 ... 82.782312 82.181572
23 3200.0 82.368085 ... 86.253369 90.523334
24 3328.0 83.613586 ... 82.653612 82.088138
25 3456.0 81.849303 ... 85.133652 84.775569
26 3584.0 87.551500 ... 94.747514 92.220917
27 3712.0 81.482335 ... 84.230479 82.971218
28 3840.0 81.138664 ... 84.292684 83.027026
29 3968.0 89.068569 ... 84.562670 80.864108
30 4096.0 92.948562 ... 89.717734 90.018600
[31 rows x 5 columns]
</pre></div>
</div>
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 5.134 seconds)</p>
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 12.082 seconds)</p>
<div class="sphx-glr-footer class sphx-glr-footer-example docutils container" id="sphx-glr-download-getting-started-tutorials-03-matrix-multiplication-py">
<div class="sphx-glr-download sphx-glr-download-python docutils container">
<p><a class="reference download internal" download="" href="../../_downloads/d5fee5b55a64e47f1b5724ec39adf171/03-matrix-multiplication.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">03-matrix-multiplication.py</span></code></a></p>

View File

@@ -174,7 +174,7 @@
<div class="section" id="computation-times">
<span id="sphx-glr-getting-started-tutorials-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline"></a></h1>
<p><strong>03:30.777</strong> total execution time for <strong>getting-started_tutorials</strong> files:</p>
<p><strong>03:36.265</strong> total execution time for <strong>getting-started_tutorials</strong> files:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 85%" />
@@ -183,15 +183,15 @@
</colgroup>
<tbody>
<tr class="row-odd"><td><p><a class="reference internal" href="03-matrix-multiplication.html#sphx-glr-getting-started-tutorials-03-matrix-multiplication-py"><span class="std std-ref">Matrix Multiplication</span></a> (<code class="docutils literal notranslate"><span class="pre">03-matrix-multiplication.py</span></code>)</p></td>
<td><p>02:05.134</p></td>
<td><p>02:12.082</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="02-fused-softmax.html#sphx-glr-getting-started-tutorials-02-fused-softmax-py"><span class="std std-ref">Fused Softmax</span></a> (<code class="docutils literal notranslate"><span class="pre">02-fused-softmax.py</span></code>)</p></td>
<td><p>01:12.677</p></td>
<td><p>01:13.141</p></td>
<td><p>0.0 MB</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="01-vector-add.html#sphx-glr-getting-started-tutorials-01-vector-add-py"><span class="std std-ref">Vector Addition</span></a> (<code class="docutils literal notranslate"><span class="pre">01-vector-add.py</span></code>)</p></td>
<td><p>00:12.966</p></td>
<td><p>00:11.041</p></td>
<td><p>0.0 MB</p></td>
</tr>
</tbody>

File diff suppressed because one or more lines are too long