[GH-PAGES] Updated website
@@ -41,8 +41,8 @@ def _add(
|
||||
|
||||
|
||||
# %%
|
||||
# Let's also declare a helper function that to (1) allocate the output vector
|
||||
# and (2) enqueueing the above kernel.
|
||||
# Let's also declare a helper function to (1) allocate the `z` tensor
|
||||
# and (2) enqueue the above kernel with appropriate grid/block sizes.
|
||||
|
||||
|
||||
def add(x, y):
|
||||
@@ -80,7 +80,7 @@ print(f'The maximum difference between torch and triton is ' f'{torch.max(torch.
|
||||
# %%
|
||||
# Benchmark
|
||||
# -----------
|
||||
# We can now benchmark our custom op for vectors of increasing sizes to get a sense of how it does relative to PyTorch.
|
||||
# We can now benchmark our custom op on vectors of increasing sizes to get a sense of how it does relative to PyTorch.
|
||||
# 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.
|
||||
|
||||
@@ -111,6 +111,6 @@ def benchmark(size, provider):
|
||||
|
||||
|
||||
# %%
|
||||
# We can now run the decorated function above. Pass `show_plots=True` to see the plots and/or
|
||||
# We can now run the decorated function above. Pass `print_data=True` to see the performance number, `show_plots=True` to plot them, and/or
|
||||
# `save_path='/path/to/results/' to save them to disk along with raw CSV data
|
||||
benchmark.run(print_data=True, show_plots=True)
|
@@ -40,7 +40,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Let's also declare a helper function that to (1) allocate the output vector\nand (2) enqueueing the above kernel.\n\n"
|
||||
"Let's also declare a helper function to (1) allocate the `z` tensor\nand (2) enqueue the above kernel with appropriate grid/block sizes.\n\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -83,7 +83,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Benchmark\nWe can now benchmark our custom op for vectors of increasing sizes to get a sense of how it does relative to PyTorch.\nTo make things easier, Triton has a set of built-in utilities that allow us to concisely plot the performance of your custom ops\nfor different problem sizes.\n\n"
|
||||
"## Benchmark\nWe can now benchmark our custom op on vectors of increasing sizes to get a sense of how it does relative to PyTorch.\nTo make things easier, Triton has a set of built-in utilities that allow us to concisely plot the performance of your custom ops\nfor different problem sizes.\n\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -101,7 +101,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"We can now run the decorated function above. Pass `show_plots=True` to see the plots and/or\n`save_path='/path/to/results/' to save them to disk along with raw CSV data\n\n"
|
||||
"We can now run the decorated function above. Pass `print_data=True` to see the performance number, `show_plots=True` to plot them, and/or\n`save_path='/path/to/results/' to save them to disk along with raw CSV data\n\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 32 KiB |
@@ -6,7 +6,13 @@ Installation
|
||||
Binary Distributions
|
||||
---------------------
|
||||
|
||||
You can install the latest nightly release of Triton from pip:
|
||||
You can install the latest stable release of Triton from pip:
|
||||
|
||||
pip install triton
|
||||
|
||||
Binary wheels are available for CPython 3.6-3.9 and PyPy 3.6-3.7.
|
||||
|
||||
And the latest nightly release:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@@ -27,9 +33,10 @@ You can install the Python package from source by running the following commands
|
||||
|
||||
git clone https://github.com/ptillet/triton.git;
|
||||
cd triton/python;
|
||||
pip install cmake; # build time dependency
|
||||
pip install -e .
|
||||
|
||||
This may take a while (10-20 minutes) as it will download and compile LLVM from source.
|
||||
Note that, if llvm-11 is not present on your system, the setup.py script will download LLVM static libraries on the web and link against that.
|
||||
|
||||
You can then test your installation by running the unit tests:
|
||||
|
||||
@@ -42,20 +49,4 @@ and the benchmarks
|
||||
.. code-block:: bash
|
||||
|
||||
cd bench/
|
||||
python -m run --with-plots --result-dir /tmp/triton-bench
|
||||
|
||||
+++++++++++++++
|
||||
C++ Package
|
||||
+++++++++++++++
|
||||
|
||||
Those not interested in Python integration may want to use the internals of Triton (i.e, runtime, parser, codegen, driver, intermediate representation) directly. This can be done by running the following commands:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
git clone https://github.com/ptillet/triton.git;
|
||||
mkdir build;
|
||||
cd build;
|
||||
cmake ../;
|
||||
make -j8;
|
||||
|
||||
Note that while direct usage of the C++ API is not officially supported, a usage tutorial can be found `here <https://github.com/ptillet/triton/blob/master/tutorials/01-matmul.cc>`_
|
||||
python -m run --with-plots --result-dir /tmp/triton-bench
|
@@ -73,8 +73,8 @@ Compute Kernel
|
||||
|
||||
.. GENERATED FROM PYTHON SOURCE LINES 44-46
|
||||
|
||||
Let's also declare a helper function that to (1) allocate the output vector
|
||||
and (2) enqueueing the above kernel.
|
||||
Let's also declare a helper function to (1) allocate the `z` tensor
|
||||
and (2) enqueue the above kernel with appropriate grid/block sizes.
|
||||
|
||||
.. GENERATED FROM PYTHON SOURCE LINES 46-64
|
||||
|
||||
@@ -149,7 +149,7 @@ Seems like we're good to go!
|
||||
|
||||
Benchmark
|
||||
-----------
|
||||
We can now benchmark our custom op for vectors of increasing sizes to get a sense of how it does relative to PyTorch.
|
||||
We can now benchmark our custom op on vectors of increasing sizes to get a sense of how it does relative to PyTorch.
|
||||
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.
|
||||
|
||||
@@ -193,7 +193,7 @@ for different problem sizes.
|
||||
|
||||
.. 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
|
||||
We can now run the decorated function above. Pass `print_data=True` to see the performance number, `show_plots=True` to plot them, and/or
|
||||
`save_path='/path/to/results/' to save them to disk along with raw CSV data
|
||||
|
||||
.. GENERATED FROM PYTHON SOURCE LINES 116-116
|
||||
@@ -216,13 +216,13 @@ We can now run the decorated function above. Pass `show_plots=True` to see the p
|
||||
|
||||
vector-add-performance:
|
||||
size Triton Torch
|
||||
0 4096.0 9.600000 9.600000
|
||||
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 76.800002
|
||||
4 65536.0 127.999995 127.999995
|
||||
5 131072.0 219.428568 219.428568
|
||||
6 262144.0 341.333321 341.333321
|
||||
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
|
||||
@@ -239,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.009 seconds)
|
||||
**Total running time of the script:** ( 0 minutes 10.979 seconds)
|
||||
|
||||
|
||||
.. _sphx_glr_download_getting-started_tutorials_01-vector-add.py:
|
||||
|
@@ -263,15 +263,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 273.066674
|
||||
1 384.0 585.142862 585.142862 267.130429
|
||||
2 512.0 630.153853 585.142849 264.258068
|
||||
3 640.0 682.666684 640.000002 265.974036
|
||||
2 512.0 630.153853 606.814814 264.258068
|
||||
3 640.0 682.666684 640.000002 269.473696
|
||||
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 328.900662
|
||||
96 12544.0 809.290334 412.971190 329.022957
|
||||
97 12672.0 811.007961 412.097543 329.142870
|
||||
96 12544.0 810.925276 412.971190 329.022957
|
||||
97 12672.0 809.389265 412.097543 329.142870
|
||||
|
||||
[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.799 seconds)
|
||||
**Total running time of the script:** ( 1 minutes 8.179 seconds)
|
||||
|
||||
|
||||
.. _sphx_glr_download_getting-started_tutorials_02-fused-softmax.py:
|
||||
|
@@ -372,36 +372,36 @@ We can now compare the performance of our kernel against that of cuBLAS. Here we
|
||||
M cuBLAS ... Triton Triton (+ LeakyReLU)
|
||||
0 128.0 0.455111 ... 0.512000 0.512000
|
||||
1 256.0 2.978909 ... 2.978909 2.978909
|
||||
2 384.0 7.372800 ... 8.507077 8.507077
|
||||
3 512.0 14.563555 ... 16.384000 15.420235
|
||||
4 640.0 22.260869 ... 23.272727 23.272727
|
||||
2 384.0 7.372800 ... 7.899428 7.899428
|
||||
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 35.123201
|
||||
6 896.0 39.025776 ... 39.025776 39.025776
|
||||
7 1024.0 49.932191 ... 52.428801 52.428801
|
||||
8 1152.0 45.242181 ... 46.656000 45.938215
|
||||
8 1152.0 45.242181 ... 46.656000 46.656000
|
||||
9 1280.0 51.200001 ... 56.109587 56.109587
|
||||
10 1408.0 64.138541 ... 65.684049 65.684049
|
||||
11 1536.0 80.430545 ... 76.106321 76.106321
|
||||
12 1664.0 63.372618 ... 61.636381 61.636381
|
||||
10 1408.0 64.138541 ... 65.684049 59.258433
|
||||
11 1536.0 79.526831 ... 75.296679 75.296679
|
||||
12 1664.0 63.372618 ... 62.061463 61.636381
|
||||
13 1792.0 72.983276 ... 68.953520 68.953520
|
||||
14 1920.0 69.467336 ... 70.172588 68.776119
|
||||
15 2048.0 73.908442 ... 75.573044 75.573044
|
||||
16 2176.0 83.500614 ... 79.855747 79.226957
|
||||
17 2304.0 68.251065 ... 72.607513 73.051599
|
||||
18 2432.0 71.305746 ... 79.813818 78.917033
|
||||
19 2560.0 77.833728 ... 76.382283 76.740048
|
||||
20 2688.0 82.823267 ... 80.880718 82.642823
|
||||
21 2816.0 83.873477 ... 77.882512 77.330158
|
||||
22 2944.0 82.102191 ... 80.122235 79.610276
|
||||
23 3072.0 78.643199 ... 81.707223 83.514905
|
||||
24 3200.0 84.321474 ... 89.012517 85.219705
|
||||
25 3328.0 83.226931 ... 86.320498 82.464255
|
||||
26 3456.0 81.026701 ... 84.508982 86.689860
|
||||
27 3584.0 87.211821 ... 91.750399 87.042978
|
||||
28 3712.0 84.230479 ... 83.526206 82.902362
|
||||
29 3840.0 80.197243 ... 82.102449 80.667046
|
||||
30 3968.0 88.231331 ... 81.079024 83.807647
|
||||
31 4096.0 93.596744 ... 90.504200 89.777746
|
||||
14 1920.0 66.782607 ... 67.434145 68.435645
|
||||
15 2048.0 73.262953 ... 75.573044 75.234154
|
||||
16 2176.0 83.155572 ... 80.494588 78.608000
|
||||
17 2304.0 68.446623 ... 72.607513 72.607513
|
||||
18 2432.0 71.125224 ... 80.963875 80.963875
|
||||
19 2560.0 77.649287 ... 75.851852 76.740048
|
||||
20 2688.0 81.401408 ... 84.483418 85.051697
|
||||
21 2816.0 80.617762 ... 77.605356 79.733474
|
||||
22 2944.0 81.967162 ... 80.902653 77.505492
|
||||
23 3072.0 82.540970 ... 84.010539 84.638425
|
||||
24 3200.0 84.432717 ... 88.642656 89.260810
|
||||
25 3328.0 80.617354 ... 83.323259 86.632127
|
||||
26 3456.0 82.183044 ... 87.252780 84.420490
|
||||
27 3584.0 85.797134 ... 95.654673 96.269155
|
||||
28 3712.0 83.317214 ... 88.404730 84.730571
|
||||
29 3840.0 81.019778 ... 86.197974 85.730230
|
||||
30 3968.0 92.652949 ... 87.159957 86.911637
|
||||
31 4096.0 93.271527 ... 91.616198 91.678778
|
||||
|
||||
[32 rows x 5 columns]
|
||||
|
||||
@@ -411,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 26.808 seconds)
|
||||
**Total running time of the script:** ( 2 minutes 11.538 seconds)
|
||||
|
||||
|
||||
.. _sphx_glr_download_getting-started_tutorials_03-matrix-multiplication.py:
|
||||
|
@@ -5,12 +5,12 @@
|
||||
|
||||
Computation times
|
||||
=================
|
||||
**03:46.617** total execution time for **getting-started_tutorials** files:
|
||||
**03:30.696** total execution time for **getting-started_tutorials** files:
|
||||
|
||||
+---------------------------------------------------------------------------------------------------------+-----------+--------+
|
||||
| :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` (``03-matrix-multiplication.py``) | 02:26.808 | 0.0 MB |
|
||||
| :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` (``03-matrix-multiplication.py``) | 02:11.538 | 0.0 MB |
|
||||
+---------------------------------------------------------------------------------------------------------+-----------+--------+
|
||||
| :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` (``02-fused-softmax.py``) | 01:08.799 | 0.0 MB |
|
||||
| :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` (``02-fused-softmax.py``) | 01:08.179 | 0.0 MB |
|
||||
+---------------------------------------------------------------------------------------------------------+-----------+--------+
|
||||
| :ref:`sphx_glr_getting-started_tutorials_01-vector-add.py` (``01-vector-add.py``) | 00:11.009 | 0.0 MB |
|
||||
| :ref:`sphx_glr_getting-started_tutorials_01-vector-add.py` (``01-vector-add.py``) | 00:10.979 | 0.0 MB |
|
||||
+---------------------------------------------------------------------------------------------------------+-----------+--------+
|
||||
|
@@ -98,7 +98,6 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="#binary-distributions">Binary Distributions</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#from-source">From Source</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#python-package">Python Package</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#c-package">C++ Package</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -186,7 +185,12 @@
|
||||
<h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="binary-distributions">
|
||||
<h2>Binary Distributions<a class="headerlink" href="#binary-distributions" title="Permalink to this headline">¶</a></h2>
|
||||
<p>You can install the latest nightly release of Triton from pip:</p>
|
||||
<p>You can install the latest stable release of Triton from pip:</p>
|
||||
<blockquote>
|
||||
<div><p>pip install triton</p>
|
||||
</div></blockquote>
|
||||
<p>Binary wheels are available for CPython 3.6-3.9 and PyPy 3.6-3.7.</p>
|
||||
<p>And the latest nightly release:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pip install -U --pre triton
|
||||
</pre></div>
|
||||
</div>
|
||||
@@ -198,10 +202,11 @@
|
||||
<p>You can install the Python package from source by running the following commands:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git clone https://github.com/ptillet/triton.git<span class="p">;</span>
|
||||
<span class="nb">cd</span> triton/python<span class="p">;</span>
|
||||
pip install cmake<span class="p">;</span> <span class="c1"># build time dependency</span>
|
||||
pip install -e .
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>This may take a while (10-20 minutes) as it will download and compile LLVM from source.</p>
|
||||
<p>Note that, if llvm-11 is not present on your system, the setup.py script will download LLVM static libraries on the web and link against that.</p>
|
||||
<p>You can then test your installation by running the unit tests:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pytest -vs .
|
||||
</pre></div>
|
||||
@@ -212,18 +217,6 @@ python -m run --with-plots --result-dir /tmp/triton-bench
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="c-package">
|
||||
<h3>C++ Package<a class="headerlink" href="#c-package" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Those not interested in Python integration may want to use the internals of Triton (i.e, runtime, parser, codegen, driver, intermediate representation) directly. This can be done by running the following commands:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git clone https://github.com/ptillet/triton.git<span class="p">;</span>
|
||||
mkdir build<span class="p">;</span>
|
||||
<span class="nb">cd</span> build<span class="p">;</span>
|
||||
cmake ../<span class="p">;</span>
|
||||
make -j8<span class="p">;</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Note that while direct usage of the C++ API is not officially supported, a usage tutorial can be found <a class="reference external" href="https://github.com/ptillet/triton/blob/master/tutorials/01-matmul.cc">here</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -228,8 +228,8 @@ to download the full example code</p>
|
||||
<span class="n">tl</span><span class="o">.</span><span class="n">store</span><span class="p">(</span><span class="n">Z</span> <span class="o">+</span> <span class="n">offsets</span><span class="p">,</span> <span class="n">z</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Let’s also declare a helper function that to (1) allocate the output vector
|
||||
and (2) enqueueing the above kernel.</p>
|
||||
<p>Let’s also declare a helper function to (1) allocate the <cite>z</cite> tensor
|
||||
and (2) enqueue the above kernel with appropriate grid/block sizes.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
|
||||
<span class="n">z</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="n">N</span> <span class="o">=</span> <span class="n">z</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
@@ -268,7 +268,7 @@ The maximum difference between torch and triton is 0.0
|
||||
</div>
|
||||
<div class="section" id="benchmark">
|
||||
<h2>Benchmark<a class="headerlink" href="#benchmark" title="Permalink to this headline">¶</a></h2>
|
||||
<p>We can now benchmark our custom op for vectors of increasing sizes to get a sense of how it does relative to PyTorch.
|
||||
<p>We can now benchmark our custom op on vectors of increasing sizes to get a sense of how it does relative to PyTorch.
|
||||
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.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nd">@triton</span><span class="o">.</span><span class="n">testing</span><span class="o">.</span><span class="n">perf_report</span><span class="p">(</span>
|
||||
@@ -296,7 +296,7 @@ for different problem sizes.</p>
|
||||
<span class="k">return</span> <span class="n">gbps</span><span class="p">(</span><span class="n">ms</span><span class="p">),</span> <span class="n">gbps</span><span class="p">(</span><span class="n">max_ms</span><span class="p">),</span> <span class="n">gbps</span><span class="p">(</span><span class="n">min_ms</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>We can now run the decorated function above. Pass <cite>show_plots=True</cite> to see the plots and/or
|
||||
<p>We can now run the decorated function above. Pass <cite>print_data=True</cite> to see the performance number, <cite>show_plots=True</cite> to plot them, and/or
|
||||
<a href="#id1"><span class="problematic" id="id2">`</span></a>save_path=’/path/to/results/’ to save them to disk along with raw CSV data</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">benchmark</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">print_data</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">show_plots</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
@@ -305,13 +305,13 @@ for different problem sizes.</p>
|
||||
<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 Triton Torch
|
||||
0 4096.0 9.600000 9.600000
|
||||
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 76.800002
|
||||
4 65536.0 127.999995 127.999995
|
||||
5 131072.0 219.428568 219.428568
|
||||
6 262144.0 341.333321 341.333321
|
||||
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
|
||||
@@ -323,7 +323,7 @@ for different problem sizes.</p>
|
||||
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.009 seconds)</p>
|
||||
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 0 minutes 10.979 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>
|
||||
|
@@ -348,15 +348,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 273.066674
|
||||
1 384.0 585.142862 585.142862 267.130429
|
||||
2 512.0 630.153853 585.142849 264.258068
|
||||
3 640.0 682.666684 640.000002 265.974036
|
||||
2 512.0 630.153853 606.814814 264.258068
|
||||
3 640.0 682.666684 640.000002 269.473696
|
||||
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 328.900662
|
||||
96 12544.0 809.290334 412.971190 329.022957
|
||||
97 12672.0 811.007961 412.097543 329.142870
|
||||
96 12544.0 810.925276 412.971190 329.022957
|
||||
97 12672.0 809.389265 412.097543 329.142870
|
||||
|
||||
[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.799 seconds)</p>
|
||||
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 8.179 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>
|
||||
|
@@ -477,41 +477,41 @@ tensor(True, device='cuda:0')
|
||||
M cuBLAS ... Triton Triton (+ LeakyReLU)
|
||||
0 128.0 0.455111 ... 0.512000 0.512000
|
||||
1 256.0 2.978909 ... 2.978909 2.978909
|
||||
2 384.0 7.372800 ... 8.507077 8.507077
|
||||
3 512.0 14.563555 ... 16.384000 15.420235
|
||||
4 640.0 22.260869 ... 23.272727 23.272727
|
||||
2 384.0 7.372800 ... 7.899428 7.899428
|
||||
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 35.123201
|
||||
6 896.0 39.025776 ... 39.025776 39.025776
|
||||
7 1024.0 49.932191 ... 52.428801 52.428801
|
||||
8 1152.0 45.242181 ... 46.656000 45.938215
|
||||
8 1152.0 45.242181 ... 46.656000 46.656000
|
||||
9 1280.0 51.200001 ... 56.109587 56.109587
|
||||
10 1408.0 64.138541 ... 65.684049 65.684049
|
||||
11 1536.0 80.430545 ... 76.106321 76.106321
|
||||
12 1664.0 63.372618 ... 61.636381 61.636381
|
||||
10 1408.0 64.138541 ... 65.684049 59.258433
|
||||
11 1536.0 79.526831 ... 75.296679 75.296679
|
||||
12 1664.0 63.372618 ... 62.061463 61.636381
|
||||
13 1792.0 72.983276 ... 68.953520 68.953520
|
||||
14 1920.0 69.467336 ... 70.172588 68.776119
|
||||
15 2048.0 73.908442 ... 75.573044 75.573044
|
||||
16 2176.0 83.500614 ... 79.855747 79.226957
|
||||
17 2304.0 68.251065 ... 72.607513 73.051599
|
||||
18 2432.0 71.305746 ... 79.813818 78.917033
|
||||
19 2560.0 77.833728 ... 76.382283 76.740048
|
||||
20 2688.0 82.823267 ... 80.880718 82.642823
|
||||
21 2816.0 83.873477 ... 77.882512 77.330158
|
||||
22 2944.0 82.102191 ... 80.122235 79.610276
|
||||
23 3072.0 78.643199 ... 81.707223 83.514905
|
||||
24 3200.0 84.321474 ... 89.012517 85.219705
|
||||
25 3328.0 83.226931 ... 86.320498 82.464255
|
||||
26 3456.0 81.026701 ... 84.508982 86.689860
|
||||
27 3584.0 87.211821 ... 91.750399 87.042978
|
||||
28 3712.0 84.230479 ... 83.526206 82.902362
|
||||
29 3840.0 80.197243 ... 82.102449 80.667046
|
||||
30 3968.0 88.231331 ... 81.079024 83.807647
|
||||
31 4096.0 93.596744 ... 90.504200 89.777746
|
||||
14 1920.0 66.782607 ... 67.434145 68.435645
|
||||
15 2048.0 73.262953 ... 75.573044 75.234154
|
||||
16 2176.0 83.155572 ... 80.494588 78.608000
|
||||
17 2304.0 68.446623 ... 72.607513 72.607513
|
||||
18 2432.0 71.125224 ... 80.963875 80.963875
|
||||
19 2560.0 77.649287 ... 75.851852 76.740048
|
||||
20 2688.0 81.401408 ... 84.483418 85.051697
|
||||
21 2816.0 80.617762 ... 77.605356 79.733474
|
||||
22 2944.0 81.967162 ... 80.902653 77.505492
|
||||
23 3072.0 82.540970 ... 84.010539 84.638425
|
||||
24 3200.0 84.432717 ... 88.642656 89.260810
|
||||
25 3328.0 80.617354 ... 83.323259 86.632127
|
||||
26 3456.0 82.183044 ... 87.252780 84.420490
|
||||
27 3584.0 85.797134 ... 95.654673 96.269155
|
||||
28 3712.0 83.317214 ... 88.404730 84.730571
|
||||
29 3840.0 81.019778 ... 86.197974 85.730230
|
||||
30 3968.0 92.652949 ... 87.159957 86.911637
|
||||
31 4096.0 93.271527 ... 91.616198 91.678778
|
||||
|
||||
[32 rows x 5 columns]
|
||||
</pre></div>
|
||||
</div>
|
||||
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 26.808 seconds)</p>
|
||||
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 11.538 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:46.617</strong> total execution time for <strong>getting-started_tutorials</strong> files:</p>
|
||||
<p><strong>03:30.696</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:26.808</p></td>
|
||||
<td><p>02:11.538</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.799</p></td>
|
||||
<td><p>01:08.179</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.009</p></td>
|
||||
<td><p>00:10.979</p></td>
|
||||
<td><p>0.0 MB</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|