[GH-PAGES] Updated website
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
@@ -231,22 +231,22 @@ We can now run the decorated function above. Pass `print_data=True` to see the p
|
||||
|
||||
vector-add-performance:
|
||||
size Triton Torch
|
||||
0 4096.0 9.540372 9.600000
|
||||
0 4096.0 8.000000 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 76.800002 76.800002
|
||||
4 65536.0 127.999995 127.999995
|
||||
5 131072.0 219.428568 219.428568
|
||||
6 262144.0 341.333321 384.000001
|
||||
6 262144.0 384.000001 341.333321
|
||||
7 524288.0 472.615390 472.615390
|
||||
8 1048576.0 585.142862 614.400016
|
||||
9 2097152.0 682.666643 722.823517
|
||||
10 4194304.0 744.727267 780.190482
|
||||
11 8388608.0 780.190482 812.429770
|
||||
12 16777216.0 799.219478 833.084721
|
||||
13 33554432.0 809.086412 843.811163
|
||||
14 67108864.0 814.111783 848.362445
|
||||
15 134217728.0 819.626913 850.656574
|
||||
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 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 11.028 seconds)
|
||||
**Total running time of the script:** ( 0 minutes 11.053 seconds)
|
||||
|
||||
|
||||
.. _sphx_glr_download_getting-started_tutorials_01-vector-add.py:
|
||||
|
@@ -304,13 +304,13 @@ We will then compare its performance against (1) :code:`torch.softmax` and (2) t
|
||||
1 384.0 585.142862 585.142862 153.600004
|
||||
2 512.0 630.153853 606.814814 154.566038
|
||||
3 640.0 660.645170 640.000002 160.000000
|
||||
4 768.0 664.216187 664.216187 163.839992
|
||||
4 768.0 702.171410 664.216187 163.839992
|
||||
.. ... ... ... ...
|
||||
93 12160.0 744.015262 405.755985 198.936606
|
||||
94 12288.0 751.847001 415.661740 199.298541
|
||||
95 12416.0 735.762991 412.149375 198.854847
|
||||
96 12544.0 736.528417 412.971190 199.111113
|
||||
97 12672.0 738.622965 412.097543 199.167004
|
||||
93 12160.0 812.359066 405.755985 199.038365
|
||||
94 12288.0 812.429770 415.661740 199.298541
|
||||
95 12416.0 810.840807 412.149375 198.954424
|
||||
96 12544.0 810.925276 412.971190 199.209928
|
||||
97 12672.0 811.007961 412.097543 199.167004
|
||||
|
||||
[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.770 seconds)
|
||||
**Total running time of the script:** ( 1 minutes 13.131 seconds)
|
||||
|
||||
|
||||
.. _sphx_glr_download_getting-started_tutorials_02-fused-softmax.py:
|
||||
|
@@ -467,32 +467,32 @@ We can now compare the performance of our kernel against that of cuBLAS. Here we
|
||||
2 512.0 14.563555 ... 16.384000 16.384000
|
||||
3 640.0 22.260869 ... 24.380953 24.380953
|
||||
4 768.0 32.768000 ... 34.028308 34.028308
|
||||
5 896.0 39.025776 ... 39.025776 37.971025
|
||||
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 46.656000
|
||||
8 1280.0 51.200001 ... 56.888887 56.888887
|
||||
9 1408.0 64.138541 ... 63.392744 62.664092
|
||||
10 1536.0 77.778988 ... 75.296679 75.296679
|
||||
9 1408.0 64.138541 ... 63.392744 63.392744
|
||||
10 1536.0 78.643199 ... 76.106321 76.106321
|
||||
11 1664.0 63.372618 ... 62.061463 62.061463
|
||||
12 1792.0 72.983276 ... 62.790080 62.441243
|
||||
13 1920.0 69.120002 ... 70.172588 69.818184
|
||||
14 2048.0 73.584279 ... 74.565406 74.565406
|
||||
15 2176.0 82.473969 ... 78.608000 80.494588
|
||||
16 2304.0 68.446623 ... 73.051599 72.828879
|
||||
17 2432.0 71.125224 ... 72.037087 82.147552
|
||||
18 2560.0 78.019048 ... 76.740048 76.382283
|
||||
19 2688.0 80.196737 ... 80.708630 82.642823
|
||||
20 2816.0 83.712490 ... 79.443003 77.056904
|
||||
21 2944.0 82.784108 ... 77.265163 77.626218
|
||||
22 3072.0 80.890151 ... 82.420822 84.010539
|
||||
23 3200.0 82.687337 ... 84.210524 88.642656
|
||||
24 3328.0 83.905938 ... 82.088138 82.275764
|
||||
25 3456.0 81.683457 ... 84.332184 83.980802
|
||||
26 3584.0 87.551500 ... 92.315595 92.791944
|
||||
27 3712.0 85.528545 ... 85.163978 87.399253
|
||||
28 3840.0 85.136259 ... 87.424508 87.011801
|
||||
29 3968.0 92.582651 ... 87.159957 86.849777
|
||||
30 4096.0 93.336389 ... 83.886082 89.958266
|
||||
13 1920.0 69.467336 ... 67.106797 69.818184
|
||||
14 2048.0 73.908442 ... 74.898285 74.565406
|
||||
15 2176.0 83.155572 ... 81.472263 81.143743
|
||||
16 2304.0 68.446623 ... 73.501144 73.275679
|
||||
17 2432.0 71.125224 ... 81.197876 82.147552
|
||||
18 2560.0 77.649287 ... 76.920185 77.465723
|
||||
19 2688.0 81.053536 ... 83.737433 80.537273
|
||||
20 2816.0 82.135981 ... 78.301990 79.733474
|
||||
21 2944.0 80.510553 ... 78.605729 76.435630
|
||||
22 3072.0 81.472093 ... 83.638266 84.386148
|
||||
23 3200.0 84.656085 ... 86.956520 89.635851
|
||||
24 3328.0 81.530349 ... 84.596116 86.632127
|
||||
25 3456.0 81.683457 ... 84.068369 83.980802
|
||||
26 3584.0 87.211821 ... 87.466332 91.099693
|
||||
27 3712.0 85.896254 ... 83.596102 85.822459
|
||||
28 3840.0 84.421376 ... 86.197974 86.130841
|
||||
29 3968.0 92.442373 ... 87.913500 87.787005
|
||||
30 4096.0 93.596744 ... 89.240508 89.062862
|
||||
|
||||
[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 27.957 seconds)
|
||||
**Total running time of the script:** ( 2 minutes 14.737 seconds)
|
||||
|
||||
|
||||
.. _sphx_glr_download_getting-started_tutorials_03-matrix-multiplication.py:
|
||||
|
@@ -5,12 +5,12 @@
|
||||
|
||||
Computation times
|
||||
=================
|
||||
**03:51.756** total execution time for **getting-started_tutorials** files:
|
||||
**03:38.920** total execution time for **getting-started_tutorials** files:
|
||||
|
||||
+---------------------------------------------------------------------------------------------------------+-----------+--------+
|
||||
| :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` (``03-matrix-multiplication.py``) | 02:27.957 | 0.0 MB |
|
||||
| :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` (``03-matrix-multiplication.py``) | 02:14.737 | 0.0 MB |
|
||||
+---------------------------------------------------------------------------------------------------------+-----------+--------+
|
||||
| :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` (``02-fused-softmax.py``) | 01:12.770 | 0.0 MB |
|
||||
| :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` (``02-fused-softmax.py``) | 01:13.131 | 0.0 MB |
|
||||
+---------------------------------------------------------------------------------------------------------+-----------+--------+
|
||||
| :ref:`sphx_glr_getting-started_tutorials_01-vector-add.py` (``01-vector-add.py``) | 00:11.028 | 0.0 MB |
|
||||
| :ref:`sphx_glr_getting-started_tutorials_01-vector-add.py` (``01-vector-add.py``) | 00:11.053 | 0.0 MB |
|
||||
+---------------------------------------------------------------------------------------------------------+-----------+--------+
|
||||
|
@@ -319,25 +319,25 @@ 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.540372 9.600000
|
||||
0 4096.0 8.000000 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 76.800002 76.800002
|
||||
4 65536.0 127.999995 127.999995
|
||||
5 131072.0 219.428568 219.428568
|
||||
6 262144.0 341.333321 384.000001
|
||||
6 262144.0 384.000001 341.333321
|
||||
7 524288.0 472.615390 472.615390
|
||||
8 1048576.0 585.142862 614.400016
|
||||
9 2097152.0 682.666643 722.823517
|
||||
10 4194304.0 744.727267 780.190482
|
||||
11 8388608.0 780.190482 812.429770
|
||||
12 16777216.0 799.219478 833.084721
|
||||
13 33554432.0 809.086412 843.811163
|
||||
14 67108864.0 814.111783 848.362445
|
||||
15 134217728.0 819.626913 850.656574
|
||||
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 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 11.028 seconds)</p>
|
||||
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 0 minutes 11.053 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>
|
||||
|
@@ -389,13 +389,13 @@ We will then compare its performance against (1) <code class="code docutils lite
|
||||
1 384.0 585.142862 585.142862 153.600004
|
||||
2 512.0 630.153853 606.814814 154.566038
|
||||
3 640.0 660.645170 640.000002 160.000000
|
||||
4 768.0 664.216187 664.216187 163.839992
|
||||
4 768.0 702.171410 664.216187 163.839992
|
||||
.. ... ... ... ...
|
||||
93 12160.0 744.015262 405.755985 198.936606
|
||||
94 12288.0 751.847001 415.661740 199.298541
|
||||
95 12416.0 735.762991 412.149375 198.854847
|
||||
96 12544.0 736.528417 412.971190 199.111113
|
||||
97 12672.0 738.622965 412.097543 199.167004
|
||||
93 12160.0 812.359066 405.755985 199.038365
|
||||
94 12288.0 812.429770 415.661740 199.298541
|
||||
95 12416.0 810.840807 412.149375 198.954424
|
||||
96 12544.0 810.925276 412.971190 199.209928
|
||||
97 12672.0 811.007961 412.097543 199.167004
|
||||
|
||||
[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.770 seconds)</p>
|
||||
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes 13.131 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>
|
||||
|
@@ -571,37 +571,37 @@ torch_output=tensor([[ 1.1045, -36.9688, 31.4688, ..., -11.3906, 24.4531, -3
|
||||
2 512.0 14.563555 ... 16.384000 16.384000
|
||||
3 640.0 22.260869 ... 24.380953 24.380953
|
||||
4 768.0 32.768000 ... 34.028308 34.028308
|
||||
5 896.0 39.025776 ... 39.025776 37.971025
|
||||
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 46.656000
|
||||
8 1280.0 51.200001 ... 56.888887 56.888887
|
||||
9 1408.0 64.138541 ... 63.392744 62.664092
|
||||
10 1536.0 77.778988 ... 75.296679 75.296679
|
||||
9 1408.0 64.138541 ... 63.392744 63.392744
|
||||
10 1536.0 78.643199 ... 76.106321 76.106321
|
||||
11 1664.0 63.372618 ... 62.061463 62.061463
|
||||
12 1792.0 72.983276 ... 62.790080 62.441243
|
||||
13 1920.0 69.120002 ... 70.172588 69.818184
|
||||
14 2048.0 73.584279 ... 74.565406 74.565406
|
||||
15 2176.0 82.473969 ... 78.608000 80.494588
|
||||
16 2304.0 68.446623 ... 73.051599 72.828879
|
||||
17 2432.0 71.125224 ... 72.037087 82.147552
|
||||
18 2560.0 78.019048 ... 76.740048 76.382283
|
||||
19 2688.0 80.196737 ... 80.708630 82.642823
|
||||
20 2816.0 83.712490 ... 79.443003 77.056904
|
||||
21 2944.0 82.784108 ... 77.265163 77.626218
|
||||
22 3072.0 80.890151 ... 82.420822 84.010539
|
||||
23 3200.0 82.687337 ... 84.210524 88.642656
|
||||
24 3328.0 83.905938 ... 82.088138 82.275764
|
||||
25 3456.0 81.683457 ... 84.332184 83.980802
|
||||
26 3584.0 87.551500 ... 92.315595 92.791944
|
||||
27 3712.0 85.528545 ... 85.163978 87.399253
|
||||
28 3840.0 85.136259 ... 87.424508 87.011801
|
||||
29 3968.0 92.582651 ... 87.159957 86.849777
|
||||
30 4096.0 93.336389 ... 83.886082 89.958266
|
||||
13 1920.0 69.467336 ... 67.106797 69.818184
|
||||
14 2048.0 73.908442 ... 74.898285 74.565406
|
||||
15 2176.0 83.155572 ... 81.472263 81.143743
|
||||
16 2304.0 68.446623 ... 73.501144 73.275679
|
||||
17 2432.0 71.125224 ... 81.197876 82.147552
|
||||
18 2560.0 77.649287 ... 76.920185 77.465723
|
||||
19 2688.0 81.053536 ... 83.737433 80.537273
|
||||
20 2816.0 82.135981 ... 78.301990 79.733474
|
||||
21 2944.0 80.510553 ... 78.605729 76.435630
|
||||
22 3072.0 81.472093 ... 83.638266 84.386148
|
||||
23 3200.0 84.656085 ... 86.956520 89.635851
|
||||
24 3328.0 81.530349 ... 84.596116 86.632127
|
||||
25 3456.0 81.683457 ... 84.068369 83.980802
|
||||
26 3584.0 87.211821 ... 87.466332 91.099693
|
||||
27 3712.0 85.896254 ... 83.596102 85.822459
|
||||
28 3840.0 84.421376 ... 86.197974 86.130841
|
||||
29 3968.0 92.442373 ... 87.913500 87.787005
|
||||
30 4096.0 93.596744 ... 89.240508 89.062862
|
||||
|
||||
[31 rows x 5 columns]
|
||||
</pre></div>
|
||||
</div>
|
||||
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 27.957 seconds)</p>
|
||||
<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes 14.737 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:51.756</strong> total execution time for <strong>getting-started_tutorials</strong> files:</p>
|
||||
<p><strong>03:38.920</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:27.957</p></td>
|
||||
<td><p>02:14.737</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.770</p></td>
|
||||
<td><p>01:13.131</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.028</p></td>
|
||||
<td><p>00:11.053</p></td>
|
||||
<td><p>0.0 MB</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@@ -189,7 +189,7 @@
|
||||
<span class="sig-prename descclassname"><span class="pre">triton.</span></span><span class="sig-name descname"><span class="pre">heuristics</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">values</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#triton.heuristics" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Decorator for specifying how the values of certain meta-parameters may be computed.
|
||||
This is useful for cases where auto-tuning is prohibitevely expensive, or just not applicable.</p>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="nd">@heuristics</span><span class="p">(</span><span class="n">values</span><span class="o">=</span><span class="p">{</span><span class="s1">'BLOCK_SIZE'</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="mi">2</span> <span class="o">**</span> <span class="nb">int</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">ceil</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">log2</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">])))})</span>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="nd">@triton</span><span class="o">.</span><span class="n">heuristics</span><span class="p">(</span><span class="n">values</span><span class="o">=</span><span class="p">{</span><span class="s1">'BLOCK_SIZE'</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="mi">2</span> <span class="o">**</span> <span class="nb">int</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">ceil</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">log2</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">])))})</span>
|
||||
<span class="nd">@triton</span><span class="o">.</span><span class="n">jit</span>
|
||||
<span class="k">def</span> <span class="nf">kernel</span><span class="p">(</span><span class="n">x_ptr</span><span class="p">,</span> <span class="n">x_size</span><span class="p">,</span> <span class="o">**</span><span class="n">META</span><span class="p">):</span>
|
||||
<span class="n">BLOCK_SIZE</span> <span class="o">=</span> <span class="n">META</span><span class="p">[</span><span class="s1">'BLOCK_SIZE'</span><span class="p">]</span> <span class="c1"># smallest power-of-two >= x_size</span>
|
||||
|