[GH-PAGES] Updated website

This commit is contained in:
Philippe Tillet
2022-08-17 00:49:36 +00:00
parent d1343b5511
commit f20cbb2743
167 changed files with 326 additions and 311 deletions

View File

@@ -235,17 +235,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 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 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 842.004273 843.811163
13 33554432.0 842.004273 842.004273
14 67108864.0 847.448255 848.362445
15 134217728.0 849.737435 850.656574
@@ -255,7 +255,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:** ( 1 minutes 49.928 seconds)
**Total running time of the script:** ( 1 minutes 41.917 seconds)
.. _sphx_glr_download_getting-started_tutorials_01-vector-add.py:

View File

@@ -278,17 +278,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 546.133347 546.133347 188.321838
0 256.0 512.000001 546.133347 190.511628
1 384.0 614.400016 585.142862 153.600004
2 512.0 655.360017 606.814814 154.566038
2 512.0 655.360017 585.142849 154.566038
3 640.0 706.206879 640.000002 160.000000
4 768.0 722.823517 664.216187 162.754967
.. ... ... ... ...
93 12160.0 812.359066 406.179533 198.834951
94 12288.0 812.429770 415.661740 199.197579
95 12416.0 812.498981 412.149375 198.755369
96 12544.0 810.925276 412.971190 199.012395
97 12672.0 811.007961 412.097543 199.167004
93 12160.0 812.359066 406.603966 199.038365
94 12288.0 812.429770 416.101597 199.197579
95 12416.0 812.498981 413.006241 198.854847
96 12544.0 810.925276 412.971190 199.111113
97 12672.0 811.007961 412.516771 199.167004
[98 rows x 4 columns]
@@ -306,7 +306,7 @@ In the above plot, we can see that:
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 3 minutes 30.792 seconds)
**Total running time of the script:** ( 3 minutes 30.054 seconds)
.. _sphx_glr_download_getting-started_tutorials_02-fused-softmax.py:

View File

@@ -459,37 +459,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.978909 ... 2.978909 3.276800
0 256.0 2.730667 ... 2.978909 2.978909
1 384.0 7.372800 ... 8.507077 8.507077
2 512.0 14.563555 ... 16.384000 16.384000
2 512.0 14.563555 ... 15.420235 16.384000
3 640.0 22.260869 ... 24.380953 24.380953
4 768.0 32.768000 ... 35.389441 34.028308
5 896.0 39.025776 ... 40.140799 39.025776
5 896.0 37.971025 ... 40.140799 39.025776
6 1024.0 49.932191 ... 53.773130 52.428801
7 1152.0 45.242181 ... 48.161033 48.161033
7 1152.0 45.242181 ... 48.161033 47.396572
8 1280.0 51.200001 ... 57.690139 57.690139
9 1408.0 64.138541 ... 69.009825 67.305878
10 1536.0 80.430545 ... 81.355034 79.526831
9 1408.0 64.138541 ... 69.009825 68.147202
10 1536.0 80.430545 ... 80.430545 78.643199
11 1664.0 62.929456 ... 63.372618 62.492442
12 1792.0 72.512412 ... 73.460287 59.467852
13 1920.0 68.776119 ... 71.257735 71.257735
12 1792.0 72.983276 ... 73.460287 59.467852
13 1920.0 69.120002 ... 71.626943 71.257735
14 2048.0 73.908442 ... 78.398206 77.314362
15 2176.0 83.500614 ... 87.876193 86.367588
16 2304.0 68.446623 ... 77.810656 77.307030
17 2432.0 71.305746 ... 86.711310 85.653855
18 2560.0 77.833728 ... 82.956960 81.108913
19 2688.0 83.369354 ... 90.316801 90.102270
20 2816.0 79.587973 ... 84.687779 83.153880
21 2944.0 81.967162 ... 83.617504 81.967162
22 3072.0 81.707223 ... 90.020831 88.060814
23 3200.0 83.879425 ... 95.238096 87.673110
24 3328.0 83.226931 ... 82.748617 84.895397
25 3456.0 81.353753 ... 88.207407 91.200871
26 3584.0 87.296493 ... 99.354022 97.628001
27 3712.0 82.421427 ... 89.353616 83.247783
28 3840.0 83.339866 ... 91.398346 86.840987
29 3968.0 86.849777 ... 92.302520 84.066569
30 4096.0 93.077479 ... 83.055527 82.340585
15 2176.0 83.155572 ... 87.876193 85.998493
16 2304.0 68.446623 ... 78.064941 77.307030
17 2432.0 71.305746 ... 86.179335 85.653855
18 2560.0 77.833728 ... 82.539044 81.310171
19 2688.0 83.737433 ... 90.532356 89.676257
20 2816.0 80.767055 ... 83.873477 81.674548
21 2944.0 82.237674 ... 83.477440 82.373605
22 3072.0 81.707223 ... 89.877939 88.197981
23 3200.0 84.544253 ... 96.822991 94.814812
24 3328.0 83.226931 ... 85.398926 84.895397
25 3456.0 81.766291 ... 91.511426 86.503829
26 3584.0 83.876297 ... 95.756542 95.350361
27 3712.0 84.159518 ... 88.837126 87.937800
28 3840.0 85.070769 ... 93.326587 85.663823
29 3968.0 91.198760 ... 87.097744 91.609561
30 4096.0 86.204508 ... 93.792965 89.240508
[31 rows x 5 columns]
@@ -499,7 +499,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:** ( 7 minutes 16.663 seconds)
**Total running time of the script:** ( 6 minutes 38.507 seconds)
.. _sphx_glr_download_getting-started_tutorials_03-matrix-multiplication.py:

View File

@@ -240,7 +240,7 @@ References
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 0 minutes 0.279 seconds)
**Total running time of the script:** ( 0 minutes 0.012 seconds)
.. _sphx_glr_download_getting-started_tutorials_04-low-memory-dropout.py:

View File

@@ -38,36 +38,36 @@ Layer Normalization
layer-norm:
N Triton Torch Apex
0 1024.0 585.142849 277.694907 481.882344
0 1024.0 585.142849 277.694907 468.114273
1 1536.0 630.153868 323.368435 511.999982
2 2048.0 668.734716 334.367358 528.516136
3 2560.0 694.237267 365.714281 518.481028
2 2048.0 682.666643 337.814445 520.126988
3 2560.0 694.237267 362.477870 512.000013
4 3072.0 712.347810 378.092307 501.551037
5 3584.0 725.873439 384.859062 458.751978
6 4096.0 728.177767 381.023256 458.293714
7 4608.0 670.254540 396.387087 426.173427
8 5120.0 688.403381 397.669909 426.666652
9 5632.0 698.542675 395.228063 413.357796
10 6144.0 702.171410 402.885254 411.313806
11 6656.0 700.631610 400.360920 398.861429
12 7168.0 690.891575 396.844306 387.459443
13 7680.0 678.895043 392.587863 387.634072
14 8192.0 639.375598 393.609605 373.424507
15 8704.0 627.315309 389.005597 380.502740
16 9216.0 606.814809 407.337026 383.999986
17 9728.0 587.350922 409.599987 382.427505
18 10240.0 564.965524 408.578556 382.803739
19 10752.0 547.872604 411.559798 381.445676
20 11264.0 533.207081 406.826188 373.134567
5 3584.0 725.873439 384.859062 451.527536
6 4096.0 728.177767 381.023256 451.972420
7 4608.0 670.254540 396.387087 428.651163
8 5120.0 688.403381 397.669909 420.102563
9 5632.0 704.000002 395.228063 413.357796
10 6144.0 702.171410 402.885254 413.042029
11 6656.0 700.631610 400.360920 400.360920
12 7168.0 690.891575 392.767108 382.293315
13 7680.0 678.895043 393.846167 386.415087
14 8192.0 636.271854 394.795186 377.729113
15 8704.0 624.502255 389.005597 379.465939
16 9216.0 604.327881 406.214877 382.010363
17 9728.0 585.142883 408.524944 383.369452
18 10240.0 564.965524 409.600010 382.803739
19 10752.0 546.133312 411.559798 380.601764
20 11264.0 531.634232 404.997742 371.595879
21 11776.0 520.486200 409.599991 377.587162
22 12288.0 514.680630 413.911572 383.251457
23 12800.0 504.433489 410.420828 376.470582
24 13312.0 494.180982 405.699062 376.310952
25 13824.0 481.882350 411.888257 379.389355
26 14336.0 470.997935 406.695045 374.185964
27 14848.0 460.403127 408.192434 374.712936
28 15360.0 454.269882 406.214870 378.092307
29 15872.0 447.887117 406.974373 376.225175
22 12288.0 516.031509 413.911572 383.251457
23 12800.0 504.433489 409.599981 377.163903
24 13312.0 494.180982 406.473303 377.645399
25 13824.0 482.934503 412.656711 379.389355
26 14336.0 471.967074 402.414053 370.558967
27 14848.0 461.297068 407.492270 373.534584
28 15360.0 454.269882 406.214870 377.511515
29 15872.0 447.098578 409.599996 377.343238
@@ -393,7 +393,7 @@ Layer Normalization
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 5 minutes 37.042 seconds)
**Total running time of the script:** ( 5 minutes 37.218 seconds)
.. _sphx_glr_download_getting-started_tutorials_05-layer-norm.py:

View File

@@ -23,7 +23,7 @@ Fused Attention
This is a Triton implementation of the Flash Attention algorithm
(see: Dao et al., https://arxiv.org/pdf/2205.14135v2.pdf; Rabe and Staats https://arxiv.org/pdf/2112.05682v2.pdf)
.. GENERATED FROM PYTHON SOURCE LINES 7-355
.. GENERATED FROM PYTHON SOURCE LINES 7-360
@@ -233,13 +233,16 @@ This is a Triton implementation of the Flash Attention algorithm
def forward(ctx, q, k, v, sm_scale):
BLOCK = 128
# shape constraints
Lq, Lk = q.shape[-1], k.shape[-1]
assert Lq == Lk
Lq, Lk, Lv = q.shape[-1], k.shape[-1], v.shape[-1]
assert Lq == Lk and Lk == Lv
assert Lk in {16, 32, 64, 128}
o = torch.empty_like(q)
grid = (triton.cdiv(q.shape[2], BLOCK), q.shape[0] * q.shape[1])
tmp = torch.empty((q.shape[0] * q.shape[1], q.shape[2]), device=q.device, dtype=torch.float32)
L = torch.empty((q.shape[0] * q.shape[1], q.shape[2]), device=q.device, dtype=torch.float32)
m = torch.empty((q.shape[0] * q.shape[1], q.shape[2]), device=q.device, dtype=torch.float32)
num_warps = 4 if Lk <= 64 else 8
_fwd_kernel[grid](
q, k, v, sm_scale,
tmp, L, m,
@@ -250,14 +253,14 @@ This is a Triton implementation of the Flash Attention algorithm
o.stride(0), o.stride(1), o.stride(2), o.stride(3),
q.shape[0], q.shape[1], q.shape[2],
BLOCK_M=BLOCK, BLOCK_N=BLOCK,
BLOCK_DMODEL=64, num_warps=4,
BLOCK_DMODEL=Lk, num_warps=num_warps,
num_stages=1,
)
ctx.save_for_backward(q, k, v, o, L, m)
ctx.BLOCK = BLOCK
ctx.grid = grid
ctx.sm_scale = sm_scale
ctx.BLOCK_DMODEL = 64
ctx.BLOCK_DMODEL = Lk
return o
@staticmethod
@@ -274,6 +277,8 @@ This is a Triton implementation of the Flash Attention algorithm
do_scaled, delta,
BLOCK_M=ctx.BLOCK, D_HEAD=ctx.BLOCK_DMODEL,
)
num_warps = 4 if ctx.BLOCK_DMODEL <= 64 else 8
_bwd_kernel[(ctx.grid[1],)](
q, k, v, ctx.sm_scale,
o, do_scaled,
@@ -286,7 +291,7 @@ This is a Triton implementation of the Flash Attention algorithm
q.shape[0], q.shape[1], q.shape[2],
ctx.grid[0],
BLOCK_M=ctx.BLOCK, BLOCK_N=ctx.BLOCK,
BLOCK_DMODEL=ctx.BLOCK_DMODEL, num_warps=8,
BLOCK_DMODEL=ctx.BLOCK_DMODEL, num_warps=num_warps,
num_stages=1,
)
return dq, dk, dv, None
@@ -385,7 +390,7 @@ This is a Triton implementation of the Flash Attention algorithm
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 0 minutes 0.078 seconds)
**Total running time of the script:** ( 0 minutes 0.073 seconds)
.. _sphx_glr_download_getting-started_tutorials_06-fused-attention.py:

View File

@@ -152,7 +152,7 @@ We can also customize the libdevice library path by passing the path to the `lib
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 0 minutes 0.254 seconds)
**Total running time of the script:** ( 0 minutes 0.010 seconds)
.. _sphx_glr_download_getting-started_tutorials_07-libdevice-function.py:

View File

@@ -5,20 +5,20 @@
Computation times
=================
**18:15.037** total execution time for **getting-started_tutorials** files:
**17:27.791** total execution time for **getting-started_tutorials** files:
+---------------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` (``03-matrix-multiplication.py``) | 07:16.663 | 0.0 MB |
| :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` (``03-matrix-multiplication.py``) | 06:38.507 | 0.0 MB |
+---------------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_getting-started_tutorials_05-layer-norm.py` (``05-layer-norm.py``) | 05:37.042 | 0.0 MB |
| :ref:`sphx_glr_getting-started_tutorials_05-layer-norm.py` (``05-layer-norm.py``) | 05:37.218 | 0.0 MB |
+---------------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` (``02-fused-softmax.py``) | 03:30.792 | 0.0 MB |
| :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` (``02-fused-softmax.py``) | 03:30.054 | 0.0 MB |
+---------------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_getting-started_tutorials_01-vector-add.py` (``01-vector-add.py``) | 01:49.928 | 0.0 MB |
| :ref:`sphx_glr_getting-started_tutorials_01-vector-add.py` (``01-vector-add.py``) | 01:41.917 | 0.0 MB |
+---------------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_getting-started_tutorials_04-low-memory-dropout.py` (``04-low-memory-dropout.py``) | 00:00.279 | 0.0 MB |
| :ref:`sphx_glr_getting-started_tutorials_06-fused-attention.py` (``06-fused-attention.py``) | 00:00.073 | 0.0 MB |
+---------------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_getting-started_tutorials_07-libdevice-function.py` (``07-libdevice-function.py``) | 00:00.254 | 0.0 MB |
| :ref:`sphx_glr_getting-started_tutorials_04-low-memory-dropout.py` (``04-low-memory-dropout.py``) | 00:00.012 | 0.0 MB |
+---------------------------------------------------------------------------------------------------------+-----------+--------+
| :ref:`sphx_glr_getting-started_tutorials_06-fused-attention.py` (``06-fused-attention.py``) | 00:00.078 | 0.0 MB |
| :ref:`sphx_glr_getting-started_tutorials_07-libdevice-function.py` (``07-libdevice-function.py``) | 00:00.010 | 0.0 MB |
+---------------------------------------------------------------------------------------------------------+-----------+--------+