[GH-PAGES] Updated website
@@ -91,8 +91,9 @@ print(f'The maximum difference between torch and triton is ' f'{torch.max(torch.
|
||||
x_vals=[2**i for i in range(12, 28, 1)], # different possible values for `x_name`
|
||||
x_log=True, # x axis is logarithmic
|
||||
line_arg='provider', # argument name whose value corresponds to a different line in the plot
|
||||
line_vals=['torch', 'triton'], # possible values for `line_arg`
|
||||
line_names=["Torch", "Triton"], # label name for the lines
|
||||
line_vals=['triton', 'torch'], # possible values for `line_arg`
|
||||
line_names=["Triton", "Torch"], # label name for the lines
|
||||
styles=[('blue', '-'), ('green', '-')], # line styles
|
||||
ylabel="GB/s", # label name for the y-axis
|
||||
plot_name="vector-add-performance", # name for the plot. Used also as a file name for saving the plot.
|
||||
args={} # values for function arguments not in `x_names` and `y_name`
|
||||
|
@@ -94,7 +94,7 @@
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"@triton.testing.perf_report(\n triton.testing.Benchmark(\n x_names=['size'], # argument names to use as an x-axis for the plot\n x_vals=[2**i for i in range(12, 28, 1)], # different possible values for `x_name`\n x_log=True, # x axis is logarithmic\n line_arg='provider', # argument name whose value corresponds to a different line in the plot\n line_vals=['torch', 'triton'], # possible values for `line_arg`\n line_names=[\"Torch\", \"Triton\"], # label name for the lines\n ylabel=\"GB/s\", # label name for the y-axis\n plot_name=\"vector-add-performance\", # name for the plot. Used also as a file name for saving the plot.\n args={} # values for function arguments not in `x_names` and `y_name`\n )\n)\ndef benchmark(size, provider):\n x = torch.rand(size, device='cuda', dtype=torch.float32)\n y = torch.rand(size, device='cuda', dtype=torch.float32)\n if provider == 'torch':\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: x + y)\n if provider == 'triton':\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: add(x, y))\n gbps = lambda ms: 12 * size / ms * 1e-6\n return gbps(ms), gbps(max_ms), gbps(min_ms)"
|
||||
"@triton.testing.perf_report(\n triton.testing.Benchmark(\n x_names=['size'], # argument names to use as an x-axis for the plot\n x_vals=[2**i for i in range(12, 28, 1)], # different possible values for `x_name`\n x_log=True, # x axis is logarithmic\n line_arg='provider', # argument name whose value corresponds to a different line in the plot\n line_vals=['triton', 'torch'], # possible values for `line_arg`\n line_names=[\"Triton\", \"Torch\"], # label name for the lines\n styles=[('blue', '-'), ('green', '-')], # line styles\n ylabel=\"GB/s\", # label name for the y-axis\n plot_name=\"vector-add-performance\", # name for the plot. Used also as a file name for saving the plot.\n args={} # values for function arguments not in `x_names` and `y_name`\n )\n)\ndef benchmark(size, provider):\n x = torch.rand(size, device='cuda', dtype=torch.float32)\n y = torch.rand(size, device='cuda', dtype=torch.float32)\n if provider == 'torch':\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: x + y)\n if provider == 'triton':\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: add(x, y))\n gbps = lambda ms: 12 * size / ms * 1e-6\n return gbps(ms), gbps(max_ms), gbps(min_ms)"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
@@ -153,7 +153,7 @@ We can now benchmark our custom op for vectors of increasing sizes to get a sens
|
||||
To make things easier, Triton has a set of built-in utilities that allow us to concisely plot the performance of your custom ops
|
||||
for different problem sizes.
|
||||
|
||||
.. GENERATED FROM PYTHON SOURCE LINES 86-112
|
||||
.. GENERATED FROM PYTHON SOURCE LINES 86-113
|
||||
|
||||
.. code-block:: default
|
||||
|
||||
@@ -165,8 +165,9 @@ for different problem sizes.
|
||||
x_vals=[2**i for i in range(12, 28, 1)], # different possible values for `x_name`
|
||||
x_log=True, # x axis is logarithmic
|
||||
line_arg='provider', # argument name whose value corresponds to a different line in the plot
|
||||
line_vals=['torch', 'triton'], # possible values for `line_arg`
|
||||
line_names=["Torch", "Triton"], # label name for the lines
|
||||
line_vals=['triton', 'torch'], # possible values for `line_arg`
|
||||
line_names=["Triton", "Torch"], # label name for the lines
|
||||
styles=[('blue', '-'), ('green', '-')], # line styles
|
||||
ylabel="GB/s", # label name for the y-axis
|
||||
plot_name="vector-add-performance", # name for the plot. Used also as a file name for saving the plot.
|
||||
args={} # values for function arguments not in `x_names` and `y_name`
|
||||
@@ -190,12 +191,12 @@ for different problem sizes.
|
||||
|
||||
|
||||
|
||||
.. GENERATED FROM PYTHON SOURCE LINES 113-115
|
||||
.. GENERATED FROM PYTHON SOURCE LINES 114-116
|
||||
|
||||
We can now run the decorated function above. Pass `show_plots=True` to see the plots and/or
|
||||
`save_path='/path/to/results/' to save them to disk along with raw CSV data
|
||||
|
||||
.. GENERATED FROM PYTHON SOURCE LINES 115-115
|
||||
.. GENERATED FROM PYTHON SOURCE LINES 116-116
|
||||
|
||||
.. code-block:: default
|
||||
|
||||
@@ -214,11 +215,11 @@ We can now run the decorated function above. Pass `show_plots=True` to see the p
|
||||
.. code-block:: none
|
||||
|
||||
vector-add-performance:
|
||||
size Torch Triton
|
||||
0 4096.0 9.600000 9.600000
|
||||
size Triton Torch
|
||||
0 4096.0 9.540372 9.600000
|
||||
1 8192.0 19.200000 19.200000
|
||||
2 16384.0 38.400001 38.400001
|
||||
3 32768.0 76.800002 63.999998
|
||||
2 16384.0 31.999999 31.999999
|
||||
3 32768.0 63.999998 76.800002
|
||||
4 65536.0 127.999995 127.999995
|
||||
5 131072.0 219.428568 219.428568
|
||||
6 262144.0 341.333321 384.000001
|
||||
@@ -229,8 +230,8 @@ We can now run the decorated function above. Pass `show_plots=True` to see the p
|
||||
11 8388608.0 812.429770 812.429770
|
||||
12 16777216.0 833.084721 833.084721
|
||||
13 33554432.0 843.811163 843.811163
|
||||
14 67108864.0 848.362445 849.278610
|
||||
15 134217728.0 850.656574 851.577704
|
||||
14 67108864.0 849.278610 848.362445
|
||||
15 134217728.0 851.577704 850.656574
|
||||
|
||||
|
||||
|
||||
@@ -238,7 +239,7 @@ We can now run the decorated function above. Pass `show_plots=True` to see the p
|
||||
|
||||
.. rst-class:: sphx-glr-timing
|
||||
|
||||
**Total running time of the script:** ( 0 minutes 11.005 seconds)
|
||||
**Total running time of the script:** ( 0 minutes 10.999 seconds)
|
||||
|
||||
|
||||
.. _sphx_glr_download_getting-started_tutorials_01-vector-add.py:
|
||||
|
@@ -261,17 +261,17 @@ We will then compare its performance against (1) :code:`torch.softmax` and (2) t
|
||||
|
||||
softmax-performance:
|
||||
N Triton Torch (native) Torch (jit)
|
||||
0 256.0 512.000001 546.133347 273.066674
|
||||
1 384.0 585.142862 585.142862 267.130429
|
||||
0 256.0 512.000001 546.133347 264.258068
|
||||
1 384.0 585.142862 585.142862 261.446801
|
||||
2 512.0 630.153853 606.814814 264.258068
|
||||
3 640.0 682.666684 640.000002 269.473696
|
||||
3 640.0 682.666684 640.000002 265.974036
|
||||
4 768.0 702.171410 664.216187 273.066663
|
||||
.. ... ... ... ...
|
||||
93 12160.0 812.359066 405.755985 329.483481
|
||||
93 12160.0 812.359066 406.179533 329.483481
|
||||
94 12288.0 812.429770 415.661740 329.602681
|
||||
95 12416.0 810.840807 412.149375 329.173158
|
||||
96 12544.0 810.925276 412.971190 329.292871
|
||||
97 12672.0 811.007961 412.097543 329.142870
|
||||
97 12672.0 811.007961 412.097543 329.410251
|
||||
|
||||
[98 rows x 4 columns]
|
||||
|
||||
@@ -290,7 +290,7 @@ In the above plot, we can see that:
|
||||
|
||||
.. rst-class:: sphx-glr-timing
|
||||
|
||||
**Total running time of the script:** ( 1 minutes 8.184 seconds)
|
||||
**Total running time of the script:** ( 1 minutes 8.183 seconds)
|
||||
|
||||
|
||||
.. _sphx_glr_download_getting-started_tutorials_02-fused-softmax.py:
|
||||
|
@@ -369,39 +369,41 @@ We can now compare the performance of our kernel against that of cuBLAS. Here we
|
||||
.. code-block:: none
|
||||
|
||||
matmul-performance:
|
||||
M cuBLAS cuBLAS (+ torch.nn.LeakyReLU) Triton Triton (+ LeakyReLU)
|
||||
0 128.0 0.455111 0.372364 0.512000 0.512000
|
||||
1 256.0 2.978909 2.340571 3.276800 2.978909
|
||||
2 384.0 7.372800 6.144000 8.507077 8.507077
|
||||
3 512.0 14.563555 11.915636 16.384000 16.384000
|
||||
4 640.0 22.260869 18.285714 23.272727 23.272727
|
||||
5 768.0 32.768000 26.810182 34.028308 34.028308
|
||||
6 896.0 39.025776 32.672744 39.025776 39.025776
|
||||
7 1024.0 49.932191 41.943041 52.428801 52.428801
|
||||
8 1152.0 44.566925 38.779015 46.656000 46.656000
|
||||
9 1280.0 51.200001 44.521738 56.109587 56.109587
|
||||
10 1408.0 64.138541 55.068446 65.684049 59.258433
|
||||
11 1536.0 79.526831 67.408458 75.296679 75.296679
|
||||
12 1664.0 63.372618 55.893862 61.636381 61.636381
|
||||
13 1792.0 72.983276 63.860363 68.953520 68.953520
|
||||
14 1920.0 66.782607 61.168141 68.776119 68.776119
|
||||
15 2048.0 73.262953 65.793006 75.234154 75.234154
|
||||
16 2176.0 82.473969 73.712993 79.540109 79.855747
|
||||
17 2304.0 68.251065 62.207998 73.051599 73.051599
|
||||
18 2432.0 71.305746 65.033481 80.963875 80.963875
|
||||
19 2560.0 77.649287 70.773218 76.560748 75.851852
|
||||
20 2688.0 82.463163 75.413632 82.106182 80.880718
|
||||
21 2816.0 82.602666 73.424595 78.442822 77.330158
|
||||
22 2944.0 82.784108 72.966370 80.122235 80.122235
|
||||
23 3072.0 79.638683 74.997490 79.082550 82.903517
|
||||
24 3200.0 84.099871 78.335374 89.385477 85.333333
|
||||
25 3328.0 83.226931 77.828428 81.346098 81.530349
|
||||
26 3456.0 79.351933 75.276907 82.858753 81.435930
|
||||
27 3584.0 87.466332 81.518940 95.858629 91.470385
|
||||
28 3712.0 84.230479 79.283603 81.682211 85.455380
|
||||
29 3840.0 84.421376 79.562590 87.355452 87.562949
|
||||
30 3968.0 93.006050 86.296981 84.038524 84.504108
|
||||
31 4096.0 93.662059 87.381330 83.729089 92.119235
|
||||
M cuBLAS ... Triton Triton (+ LeakyReLU)
|
||||
0 128.0 0.455111 ... 0.512000 0.512000
|
||||
1 256.0 2.730667 ... 3.276800 2.978909
|
||||
2 384.0 7.372800 ... 8.507077 8.507077
|
||||
3 512.0 14.563555 ... 15.420235 15.420235
|
||||
4 640.0 22.260869 ... 24.380953 24.380953
|
||||
5 768.0 32.768000 ... 34.028308 34.028308
|
||||
6 896.0 39.025776 ... 39.025776 39.025776
|
||||
7 1024.0 49.932191 ... 52.428801 52.428801
|
||||
8 1152.0 44.566925 ... 46.656000 45.938215
|
||||
9 1280.0 51.200001 ... 56.109587 56.109587
|
||||
10 1408.0 64.138541 ... 65.684049 58.601554
|
||||
11 1536.0 79.526831 ... 76.106321 75.296679
|
||||
12 1664.0 63.372618 ... 61.636381 61.636381
|
||||
13 1792.0 72.983276 ... 68.953520 68.533074
|
||||
14 1920.0 69.120002 ... 69.467336 69.467336
|
||||
15 2048.0 73.584279 ... 75.573044 75.234154
|
||||
16 2176.0 83.155572 ... 79.226957 80.494588
|
||||
17 2304.0 68.446623 ... 72.387489 72.607513
|
||||
18 2432.0 71.125224 ... 80.269900 80.963875
|
||||
19 2560.0 77.649287 ... 76.920185 76.740048
|
||||
20 2688.0 84.108772 ... 81.053536 83.004501
|
||||
21 2816.0 79.879498 ... 78.868366 79.011245
|
||||
22 2944.0 81.698415 ... 77.505492 79.865439
|
||||
23 3072.0 80.202695 ... 83.886078 83.391907
|
||||
24 3200.0 82.262212 ... 89.385477 87.074829
|
||||
25 3328.0 83.226931 ... 86.946008 81.715431
|
||||
26 3456.0 78.578525 ... 84.420490 84.068369
|
||||
27 3584.0 87.296493 ... 90.276496 85.064084
|
||||
28 3712.0 83.386762 ... 83.876864 84.515517
|
||||
29 3840.0 85.005380 ... 87.701820 87.493673
|
||||
30 3968.0 92.864488 ... 84.562670 83.807647
|
||||
31 4096.0 93.596744 ... 83.626378 91.616198
|
||||
|
||||
[32 rows x 5 columns]
|
||||
|
||||
|
||||
|
||||
@@ -409,7 +411,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 12.630 seconds)
|
||||
**Total running time of the script:** ( 2 minutes 13.184 seconds)
|
||||
|
||||
|
||||
.. _sphx_glr_download_getting-started_tutorials_03-matrix-multiplication.py:
|
||||
|
@@ -5,12 +5,12 @@
|
||||
|
||||
Computation times
|
||||
=================
|
||||
**03:31.819** total execution time for **getting-started_tutorials** files:
|
||||
**03:32.367** total execution time for **getting-started_tutorials** files:
|
||||
|
||||
+---------------------------------------------------------------------------------------------------------+-----------+--------+
|
||||
| :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` (``03-matrix-multiplication.py``) | 02:12.630 | 0.0 MB |
|
||||
| :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` (``03-matrix-multiplication.py``) | 02:13.184 | 0.0 MB |
|
||||
+---------------------------------------------------------------------------------------------------------+-----------+--------+
|
||||
| :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` (``02-fused-softmax.py``) | 01:08.184 | 0.0 MB |
|
||||
| :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` (``02-fused-softmax.py``) | 01:08.183 | 0.0 MB |
|
||||
+---------------------------------------------------------------------------------------------------------+-----------+--------+
|
||||
| :ref:`sphx_glr_getting-started_tutorials_01-vector-add.py` (``01-vector-add.py``) | 00:11.005 | 0.0 MB |
|
||||
| :ref:`sphx_glr_getting-started_tutorials_01-vector-add.py` (``01-vector-add.py``) | 00:10.999 | 0.0 MB |
|
||||
+---------------------------------------------------------------------------------------------------------+-----------+--------+
|
||||
|
@@ -277,8 +277,9 @@ for different problem sizes.</p>
|
||||
<span class="n">x_vals</span><span class="o">=</span><span class="p">[</span><span class="mi">2</span><span class="o">**</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">12</span><span class="p">,</span> <span class="mi">28</span><span class="p">,</span> <span class="mi">1</span><span class="p">)],</span> <span class="c1"># different possible values for `x_name`</span>
|
||||
<span class="n">x_log</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="c1"># x axis is logarithmic</span>
|
||||
<span class="n">line_arg</span><span class="o">=</span><span class="s1">'provider'</span><span class="p">,</span> <span class="c1"># argument name whose value corresponds to a different line in the plot</span>
|
||||
<span class="n">line_vals</span><span class="o">=</span><span class="p">[</span><span class="s1">'torch'</span><span class="p">,</span> <span class="s1">'triton'</span><span class="p">],</span> <span class="c1"># possible values for `line_arg`</span>
|
||||
<span class="n">line_names</span><span class="o">=</span><span class="p">[</span><span class="s2">"Torch"</span><span class="p">,</span> <span class="s2">"Triton"</span><span class="p">],</span> <span class="c1"># label name for the lines</span>
|
||||
<span class="n">line_vals</span><span class="o">=</span><span class="p">[</span><span class="s1">'triton'</span><span class="p">,</span> <span class="s1">'torch'</span><span class="p">],</span> <span class="c1"># possible values for `line_arg`</span>
|
||||
<span class="n">line_names</span><span class="o">=</span><span class="p">[</span><span class="s2">"Triton"</span><span class="p">,</span> <span class="s2">"Torch"</span><span class="p">],</span> <span class="c1"># label name for the lines</span>
|
||||
<span class="n">styles</span><span class="o">=</span><span class="p">[(</span><span class="s1">'blue'</span><span class="p">,</span> <span class="s1">'-'</span><span class="p">),</span> <span class="p">(</span><span class="s1">'green'</span><span class="p">,</span> <span class="s1">'-'</span><span class="p">)],</span> <span class="c1"># line styles</span>
|
||||
<span class="n">ylabel</span><span class="o">=</span><span class="s2">"GB/s"</span><span class="p">,</span> <span class="c1"># label name for the y-axis</span>
|
||||
<span class="n">plot_name</span><span class="o">=</span><span class="s2">"vector-add-performance"</span><span class="p">,</span> <span class="c1"># name for the plot. Used also as a file name for saving the plot.</span>
|
||||
<span class="n">args</span><span class="o">=</span><span class="p">{}</span> <span class="c1"># values for function arguments not in `x_names` and `y_name`</span>
|
||||
@@ -303,11 +304,11 @@ for different problem sizes.</p>
|
||||
<img alt="01 vector add" class="sphx-glr-single-img" src="../../_images/sphx_glr_01-vector-add_001.png" />
|
||||
<p class="sphx-glr-script-out">Out:</p>
|
||||
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>vector-add-performance:
|
||||
size Torch Triton
|
||||
0 4096.0 9.600000 9.600000
|
||||
size Triton Torch
|
||||
0 4096.0 9.540372 9.600000
|
||||
1 8192.0 19.200000 19.200000
|
||||
2 16384.0 38.400001 38.400001
|
||||
3 32768.0 76.800002 63.999998
|
||||
2 16384.0 31.999999 31.999999
|
||||
3 32768.0 63.999998 76.800002
|
||||
4 65536.0 127.999995 127.999995
|
||||
5 131072.0 219.428568 219.428568
|
||||
6 262144.0 341.333321 384.000001
|
||||
@@ -318,11 +319,11 @@ for different problem sizes.</p>
|
||||
11 8388608.0 812.429770 812.429770
|
||||
12 16777216.0 833.084721 833.084721
|
||||
13 33554432.0 843.811163 843.811163
|
||||
14 67108864.0 848.362445 849.278610
|
||||
15 134217728.0 850.656574 851.577704
|
||||
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 11.005 seconds)</p>
|
||||
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 0 minutes 10.999 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>
|
||||
|
@@ -346,17 +346,17 @@ We will then compare its performance against (1) <code class="code docutils lite
|
||||
<p class="sphx-glr-script-out">Out:</p>
|
||||
<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>softmax-performance:
|
||||
N Triton Torch (native) Torch (jit)
|
||||
0 256.0 512.000001 546.133347 273.066674
|
||||
1 384.0 585.142862 585.142862 267.130429
|
||||
0 256.0 512.000001 546.133347 264.258068
|
||||
1 384.0 585.142862 585.142862 261.446801
|
||||
2 512.0 630.153853 606.814814 264.258068
|
||||
3 640.0 682.666684 640.000002 269.473696
|
||||
3 640.0 682.666684 640.000002 265.974036
|
||||
4 768.0 702.171410 664.216187 273.066663
|
||||
.. ... ... ... ...
|
||||
93 12160.0 812.359066 405.755985 329.483481
|
||||
93 12160.0 812.359066 406.179533 329.483481
|
||||
94 12288.0 812.429770 415.661740 329.602681
|
||||
95 12416.0 810.840807 412.149375 329.173158
|
||||
96 12544.0 810.925276 412.971190 329.292871
|
||||
97 12672.0 811.007961 412.097543 329.142870
|
||||
97 12672.0 811.007961 412.097543 329.410251
|
||||
|
||||
[98 rows x 4 columns]
|
||||
</pre></div>
|
||||
@@ -370,7 +370,7 @@ This means that – when temporary data is too large to fit entirely in the GPU
|
||||
Note that our Triton kernel is not only faster than PyTorch’s CUDA kernel, it is also <strong>easier to read, understand and maintain</strong>.</p></li>
|
||||
</ul>
|
||||
</div></blockquote>
|
||||
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 8.184 seconds)</p>
|
||||
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 8.183 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>
|
||||
|
@@ -474,42 +474,44 @@ tensor(True, device='cuda:0')
|
||||
<img alt="03 matrix multiplication" class="sphx-glr-single-img" src="../../_images/sphx_glr_03-matrix-multiplication_001.png" />
|
||||
<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 cuBLAS (+ torch.nn.LeakyReLU) Triton Triton (+ LeakyReLU)
|
||||
0 128.0 0.455111 0.372364 0.512000 0.512000
|
||||
1 256.0 2.978909 2.340571 3.276800 2.978909
|
||||
2 384.0 7.372800 6.144000 8.507077 8.507077
|
||||
3 512.0 14.563555 11.915636 16.384000 16.384000
|
||||
4 640.0 22.260869 18.285714 23.272727 23.272727
|
||||
5 768.0 32.768000 26.810182 34.028308 34.028308
|
||||
6 896.0 39.025776 32.672744 39.025776 39.025776
|
||||
7 1024.0 49.932191 41.943041 52.428801 52.428801
|
||||
8 1152.0 44.566925 38.779015 46.656000 46.656000
|
||||
9 1280.0 51.200001 44.521738 56.109587 56.109587
|
||||
10 1408.0 64.138541 55.068446 65.684049 59.258433
|
||||
11 1536.0 79.526831 67.408458 75.296679 75.296679
|
||||
12 1664.0 63.372618 55.893862 61.636381 61.636381
|
||||
13 1792.0 72.983276 63.860363 68.953520 68.953520
|
||||
14 1920.0 66.782607 61.168141 68.776119 68.776119
|
||||
15 2048.0 73.262953 65.793006 75.234154 75.234154
|
||||
16 2176.0 82.473969 73.712993 79.540109 79.855747
|
||||
17 2304.0 68.251065 62.207998 73.051599 73.051599
|
||||
18 2432.0 71.305746 65.033481 80.963875 80.963875
|
||||
19 2560.0 77.649287 70.773218 76.560748 75.851852
|
||||
20 2688.0 82.463163 75.413632 82.106182 80.880718
|
||||
21 2816.0 82.602666 73.424595 78.442822 77.330158
|
||||
22 2944.0 82.784108 72.966370 80.122235 80.122235
|
||||
23 3072.0 79.638683 74.997490 79.082550 82.903517
|
||||
24 3200.0 84.099871 78.335374 89.385477 85.333333
|
||||
25 3328.0 83.226931 77.828428 81.346098 81.530349
|
||||
26 3456.0 79.351933 75.276907 82.858753 81.435930
|
||||
27 3584.0 87.466332 81.518940 95.858629 91.470385
|
||||
28 3712.0 84.230479 79.283603 81.682211 85.455380
|
||||
29 3840.0 84.421376 79.562590 87.355452 87.562949
|
||||
30 3968.0 93.006050 86.296981 84.038524 84.504108
|
||||
31 4096.0 93.662059 87.381330 83.729089 92.119235
|
||||
M cuBLAS ... Triton Triton (+ LeakyReLU)
|
||||
0 128.0 0.455111 ... 0.512000 0.512000
|
||||
1 256.0 2.730667 ... 3.276800 2.978909
|
||||
2 384.0 7.372800 ... 8.507077 8.507077
|
||||
3 512.0 14.563555 ... 15.420235 15.420235
|
||||
4 640.0 22.260869 ... 24.380953 24.380953
|
||||
5 768.0 32.768000 ... 34.028308 34.028308
|
||||
6 896.0 39.025776 ... 39.025776 39.025776
|
||||
7 1024.0 49.932191 ... 52.428801 52.428801
|
||||
8 1152.0 44.566925 ... 46.656000 45.938215
|
||||
9 1280.0 51.200001 ... 56.109587 56.109587
|
||||
10 1408.0 64.138541 ... 65.684049 58.601554
|
||||
11 1536.0 79.526831 ... 76.106321 75.296679
|
||||
12 1664.0 63.372618 ... 61.636381 61.636381
|
||||
13 1792.0 72.983276 ... 68.953520 68.533074
|
||||
14 1920.0 69.120002 ... 69.467336 69.467336
|
||||
15 2048.0 73.584279 ... 75.573044 75.234154
|
||||
16 2176.0 83.155572 ... 79.226957 80.494588
|
||||
17 2304.0 68.446623 ... 72.387489 72.607513
|
||||
18 2432.0 71.125224 ... 80.269900 80.963875
|
||||
19 2560.0 77.649287 ... 76.920185 76.740048
|
||||
20 2688.0 84.108772 ... 81.053536 83.004501
|
||||
21 2816.0 79.879498 ... 78.868366 79.011245
|
||||
22 2944.0 81.698415 ... 77.505492 79.865439
|
||||
23 3072.0 80.202695 ... 83.886078 83.391907
|
||||
24 3200.0 82.262212 ... 89.385477 87.074829
|
||||
25 3328.0 83.226931 ... 86.946008 81.715431
|
||||
26 3456.0 78.578525 ... 84.420490 84.068369
|
||||
27 3584.0 87.296493 ... 90.276496 85.064084
|
||||
28 3712.0 83.386762 ... 83.876864 84.515517
|
||||
29 3840.0 85.005380 ... 87.701820 87.493673
|
||||
30 3968.0 92.864488 ... 84.562670 83.807647
|
||||
31 4096.0 93.596744 ... 83.626378 91.616198
|
||||
|
||||
[32 rows x 5 columns]
|
||||
</pre></div>
|
||||
</div>
|
||||
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 12.630 seconds)</p>
|
||||
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 13.184 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>
|
||||
|
@@ -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:31.819</strong> total execution time for <strong>getting-started_tutorials</strong> files:</p>
|
||||
<p><strong>03:32.367</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:12.630</p></td>
|
||||
<td><p>02:13.184</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:08.184</p></td>
|
||||
<td><p>01:08.183</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:11.005</p></td>
|
||||
<td><p>00:10.999</p></td>
|
||||
<td><p>0.0 MB</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|