Skip to content

Store and update output in RF#388

Merged
danthe3rd merged 1 commit into
mainfrom
outputrf
Sep 13, 2022
Merged

Store and update output in RF#388
danthe3rd merged 1 commit into
mainfrom
outputrf

Conversation

@danthe3rd

@danthe3rd danthe3rd commented Sep 12, 2022

Copy link
Copy Markdown
Contributor

When we iterate on key_start, we do the second matmul with V and stored the result into gmem after rescaling the current value. This did: gmem read/write + shmem read/write (due to the epilogue).
This PR keeps everything in registers, and we only write to global memory at the end of the kernel.

BENCHMARKS

A100
[------------------------------------------- attention (attn_bias=<class 'NoneType'>) -------------------------------------------]
                                         |  7446017_outputrf  |  0d5a385_main  |  vanilla  |  e36e413_onefunc  |  ec4ca77_pipeline
1 threads: -----------------------------------------------------------------------------------------------------------------------
      f16 fwd_gen B=256, M=128, K=16     |         23.8       |       25.5     |     60.6  |         26.9      |         25.6     
      f32 fwd_gen B=256, M=128, K=16     |         46.4       |       49.1     |    124.8  |         51.3      |         50.9     
      f16 fwd_gen B=256, M=128, K=32     |         23.7       |       27.2     |     60.7  |         27.4      |         26.4     
      f32 fwd_gen B=256, M=128, K=32     |         47.9       |       50.6     |    136.9  |         52.9      |         53.1     
      f16 fwd_gen B=256, M=128, K=64     |         27.7       |       32.3     |     60.4  |         32.7      |         31.3     
      f32 fwd_gen B=256, M=128, K=64     |         67.2       |       64.8     |    157.6  |         70.1      |         74.7     
      f16 fwd_gen B=256, M=128, K=128    |         51.3       |       55.9     |     60.7  |         55.6      |         55.8     
      f32 fwd_gen B=256, M=128, K=128    |        115.6       |      113.9     |    215.4  |        113.5      |        113.5     
      f16 fwd_gen B=256, M=128, K=256    |        106.0       |      106.7     |    115.0  |        106.7      |        106.6     
      f32 fwd_gen B=256, M=128, K=256    |        213.8       |      207.4     |    364.5  |        210.8      |        211.0     
      f16 fwd_gen B=256, M=512, K=16     |        186.8       |      239.7     |    476.2  |        241.1      |        226.3     
      f32 fwd_gen B=256, M=512, K=16     |        569.4       |      629.2     |   1570.2  |        652.4      |        640.9     
      f16 fwd_gen B=256, M=512, K=32     |        194.1       |      257.1     |    494.5  |        258.7      |        234.2     
      f32 fwd_gen B=256, M=512, K=32     |        578.6       |      641.6     |   1685.7  |        662.8      |        653.9     
      f16 fwd_gen B=256, M=512, K=64     |        238.2       |      319.4     |    539.9  |        319.8      |        297.9     
      f32 fwd_gen B=256, M=512, K=64     |        712.2       |      777.4     |   1930.8  |        809.3      |        802.4     
      f16 fwd_gen B=256, M=512, K=128    |        401.7       |      466.1     |    615.9  |        466.7      |        484.1     
      f32 fwd_gen B=256, M=512, K=128    |       1435.3       |     1481.0     |   2426.5  |       1484.5      |       1485.7     
      f16 fwd_gen B=256, M=512, K=256    |        900.3       |      888.8     |    762.9  |        885.4      |        891.8     
      f32 fwd_gen B=256, M=512, K=256    |       2804.3       |     2755.5     |   4270.8  |       2756.9      |       2757.8     
      f16 fwd_gen B=256, M=1024, K=16    |        703.5       |      933.5     |   1876.2  |        937.0      |        869.6     
      f32 fwd_gen B=256, M=1024, K=16    |       2184.4       |     2423.0     |   5990.9  |       2502.5      |       2446.2     
      f16 fwd_gen B=256, M=1024, K=32    |        713.0       |      947.5     |   1910.2  |        952.1      |        882.1     
      f32 fwd_gen B=256, M=1024, K=32    |       2205.7       |     2458.1     |   6414.3  |       2534.9      |       2478.9     
      f16 fwd_gen B=256, M=1024, K=64    |        839.3       |     1146.7     |   2011.5  |       1144.5      |       1073.3     
      f32 fwd_gen B=256, M=1024, K=64    |       2702.1       |     2960.1     |   7360.9  |       3069.7      |       3029.5     
      f16 fwd_gen B=256, M=1024, K=128   |       1437.5       |     1713.8     |   2234.9  |       1730.8      |       1765.2     
      f32 fwd_gen B=256, M=1024, K=128   |       5480.2       |     5769.1     |   9216.9  |       5735.4      |       5736.3     
      f16 fwd_gen B=256, M=1024, K=256   |       3260.6       |     3203.6     |   2630.3  |       3204.1      |       3242.7     
      f32 fwd_gen B=256, M=1024, K=256   |      10836.1       |    10723.8     |  16590.1  |      10691.7      |      10696.7     
      f16 fwd_gen B=384, M=192, K=88     |        123.7       |      139.0     |    190.5  |        138.3      |        145.7     
      f32 fwd_gen B=384, M=192, K=88     |        367.1       |      371.7     |    691.3  |        373.6      |        373.7     
      f16 fwd_gen B=1024, M=128, K=16    |         59.8       |       69.0     |    160.3  |         70.1      |         66.2     
      f32 fwd_gen B=1024, M=128, K=16    |        166.5       |      173.2     |    428.1  |        178.8      |        177.2     
      f16 fwd_gen B=1024, M=128, K=32    |         68.0       |       80.2     |    169.9  |         81.5      |         75.5     
      f32 fwd_gen B=1024, M=128, K=32    |        176.3       |      180.2     |    476.4  |        187.3      |        186.5     
      f16 fwd_gen B=1024, M=128, K=64    |        104.6       |      117.6     |    216.2  |        119.1      |        111.1     
      f32 fwd_gen B=1024, M=128, K=64    |        228.2       |      230.9     |    560.8  |        241.9      |        243.3     
      f16 fwd_gen B=1024, M=128, K=128   |        188.0       |      199.6     |    291.5  |        199.2      |        194.5     
      f32 fwd_gen B=1024, M=128, K=128   |        415.6       |      418.5     |    731.7  |        412.0      |        412.7     
      f16 fwd_gen B=1024, M=128, K=256   |        364.9       |      365.1     |    437.0  |        364.8      |        365.9     
      f32 fwd_gen B=1024, M=128, K=256   |        798.7       |      766.5     |   1280.8  |        786.8      |        786.8     
      f16 fwd_gen B=1024, M=512, K=16    |        731.8       |      951.3     |   1781.5  |        956.7      |        885.5     
      f32 fwd_gen B=1024, M=512, K=16    |       2220.8       |     2444.8     |   6066.0  |       2529.9      |       2481.6     
      f16 fwd_gen B=1024, M=512, K=32    |        753.0       |      977.0     |   1858.3  |        982.4      |        909.3     
      f32 fwd_gen B=1024, M=512, K=32    |       2252.9       |     2491.9     |   6481.8  |       2572.2      |       2523.7     
      f16 fwd_gen B=1024, M=512, K=64    |        906.3       |     1205.9     |   2030.2  |       1208.8      |       1126.3     
      f32 fwd_gen B=1024, M=512, K=64    |       2776.7       |     3014.1     |   7440.9  |       3126.4      |       3091.6     
      f16 fwd_gen B=1024, M=512, K=128   |       1574.2       |     1819.7     |   2340.9  |       1820.9      |       1882.1     
      f32 fwd_gen B=1024, M=512, K=128   |       5708.6       |     5874.6     |   9435.2  |       5869.3      |       5869.9     
      f16 fwd_gen B=1024, M=512, K=256   |       3519.5       |     3509.6     |   2935.7  |       3515.0      |       3496.8     
      f32 fwd_gen B=1024, M=512, K=256   |      11139.1       |    10951.4     |  17061.2  |      10942.5      |      10933.4     
      f16 fwd_gen B=1024, M=1024, K=16   |       2763.5       |     3665.3     |   7389.4  |       3678.0      |       3419.2     
      f32 fwd_gen B=1024, M=1024, K=16   |       8648.8       |     9589.0     |  23884.9  |       9902.1      |       9668.9     
      f16 fwd_gen B=1024, M=1024, K=32   |       2797.2       |     3716.6     |   7569.9  |       3731.0      |       3464.8     
      f32 fwd_gen B=1024, M=1024, K=32   |       8729.3       |     9722.2     |  25567.1  |      10016.7      |       9787.8     
      f16 fwd_gen B=1024, M=1024, K=64   |       3281.7       |     4498.6     |   8051.6  |       4487.6      |       4215.1     
      f32 fwd_gen B=1024, M=1024, K=64   |      10698.0       |    11698.6     |  29342.4  |      12120.7      |      11957.7     
      f16 fwd_gen B=1024, M=1024, K=128  |       5671.2       |     6857.8     |   8821.3  |       6857.2      |       6962.2     
      f32 fwd_gen B=1024, M=1024, K=128  |      21787.0       |    22919.6     |  36637.5  |      22780.8      |      22783.4     
      f16 fwd_gen B=1024, M=1024, K=256  |      12990.2       |    12748.0     |  10367.2  |      12793.4      |      12842.5     
      f32 fwd_gen B=1024, M=1024, K=256  |      43255.7       |    42629.6     |  66174.2  |      42641.7      |      42651.7     

Times are in microseconds (us).
P100/V100 perf
[-------------------------------------------------------- attention (attn_bias=<class 'NoneType'>) -------------------------------------------------------]
                                                             |  74460174_outputrf  |  0d5a3856_main  |  vanilla   |  e36e4132_onefunc  |  ec4ca775_pipeline
1 threads: ------------------------------------------------------------------------------------------------------------------------------------------------
  (Quadro_GP100)          f32 fwd_gen B=256, M=128, K=16     |          161.4      |        168.7    |     301.0  |         166.8      |          170.9    
                          f16 fwd_gen B=256, M=128, K=16     |          167.4      |        173.0    |     220.8  |         176.8      |          176.7    
                          f32 fwd_gen B=256, M=128, K=32     |          173.6      |        190.5    |     284.4  |         190.3      |          190.7    
                          f16 fwd_gen B=256, M=128, K=32     |          195.5      |        199.9    |     238.9  |         205.5      |          205.1    
                          f32 fwd_gen B=256, M=128, K=64     |          229.2      |        250.6    |     337.5  |         251.7      |          251.9    
                          f16 fwd_gen B=256, M=128, K=64     |          246.9      |        255.9    |     286.1  |         264.6      |          264.1    
                          f32 fwd_gen B=256, M=128, K=128    |          446.8      |        454.9    |     444.4  |         456.8      |          457.7    
                          f16 fwd_gen B=256, M=128, K=128    |          451.5      |        460.7    |     373.0  |         460.2      |          460.4    
                          f32 fwd_gen B=256, M=128, K=256    |          907.7      |        914.2    |     911.9  |         907.0      |          907.5    
                          f16 fwd_gen B=256, M=128, K=256    |          911.3      |        899.1    |     657.9  |         906.0      |          897.3    
                          f32 fwd_gen B=256, M=512, K=16     |         2038.0      |       2331.2    |    3432.2  |        2319.6      |         2329.7    
                          f16 fwd_gen B=256, M=512, K=16     |         2277.5      |       2449.9    |    2920.0  |        2493.6      |         2493.1    
                          f32 fwd_gen B=256, M=512, K=32     |         2363.2      |       2689.3    |    3671.4  |        2678.3      |         2677.7    
                          f16 fwd_gen B=256, M=512, K=32     |         2642.1      |       2810.5    |    3184.4  |        2871.3      |         2861.0    
                          f32 fwd_gen B=256, M=512, K=64     |         3066.7      |       3656.6    |    4262.9  |        3629.2      |         3630.3    
                          f16 fwd_gen B=256, M=512, K=64     |         3416.2      |       3771.1    |    3789.3  |        3799.3      |         3820.6    
                          f32 fwd_gen B=256, M=512, K=128    |         6116.5      |       6935.4    |    5473.3  |        6838.3      |         6800.9    
                          f16 fwd_gen B=256, M=512, K=128    |         6677.3      |       7106.5    |    4926.9  |        6944.3      |         6924.6    
                          f32 fwd_gen B=256, M=512, K=256    |        13215.2      |      13394.7    |    9618.1  |       13274.4      |        13261.9    
                          f16 fwd_gen B=256, M=512, K=256    |        13477.2      |      13767.6    |    8746.2  |       13477.0      |        13620.1    
                          f32 fwd_gen B=256, M=1024, K=16    |         7975.7      |       9437.3    |   13245.7  |        9174.6      |         9218.3    
                          f16 fwd_gen B=256, M=1024, K=16    |         8912.7      |       9638.5    |   11651.2  |        9778.2      |         9799.4    
                          f32 fwd_gen B=256, M=1024, K=32    |         9188.6      |      10568.3    |   14328.8  |       10394.0      |        10477.6    
                          f16 fwd_gen B=256, M=1024, K=32    |        10332.1      |      11274.0    |   12782.2  |       11395.5      |        11363.3    
                          f32 fwd_gen B=256, M=1024, K=64    |        11851.4      |      14332.3    |   16589.0  |       14203.3      |        14163.6    
                          f16 fwd_gen B=256, M=1024, K=64    |        13266.3      |      14768.5    |   15040.5  |       14973.9      |        15077.3    
                          f32 fwd_gen B=256, M=1024, K=128   |        23703.2      |      27453.0    |   20973.7  |       27170.3      |        27177.1    
                          f16 fwd_gen B=256, M=1024, K=128   |        25602.2      |      27702.1    |   19247.0  |       27673.3      |        27601.8    
                          f32 fwd_gen B=256, M=1024, K=256   |        52635.4      |      53475.1    |   37444.6  |       52881.1      |        52967.4    
                          f16 fwd_gen B=256, M=1024, K=256   |        52913.0      |      53871.6    |   34517.1  |       53999.3      |        53721.8    
                          f32 fwd_gen B=384, M=192, K=88     |         1375.8      |       1481.1    |    1211.9  |        1453.3      |         1463.5    
                          f16 fwd_gen B=384, M=192, K=88     |         1401.7      |       1502.3    |    1099.7  |        1487.1      |         1475.3    
                          f32 fwd_gen B=1024, M=128, K=16    |          549.6      |        609.2    |     956.2  |         601.3      |          601.0    
                          f16 fwd_gen B=1024, M=128, K=16    |          611.9      |        625.1    |     829.2  |         633.6      |          633.5    
                          f32 fwd_gen B=1024, M=128, K=32    |          657.3      |        720.8    |    1068.0  |         709.5      |          715.9    
                          f16 fwd_gen B=1024, M=128, K=32    |          714.8      |        742.8    |     905.6  |         758.0      |          764.1    
                          f32 fwd_gen B=1024, M=128, K=64    |          868.6      |        950.2    |    1262.5  |         949.8      |          947.2    
                          f16 fwd_gen B=1024, M=128, K=64    |          930.5      |        986.1    |    1082.7  |         997.8      |         1018.1    
                          f32 fwd_gen B=1024, M=128, K=128   |         1764.5      |       1804.3    |    1697.5  |        1780.2      |         1791.0    
                          f16 fwd_gen B=1024, M=128, K=128   |         1787.9      |       1834.1    |    1421.2  |        1811.4      |         1819.2    
                          f32 fwd_gen B=1024, M=128, K=256   |         3561.6      |       3612.7    |    3539.0  |        3552.6      |         3552.8    
                          f16 fwd_gen B=1024, M=128, K=256   |         3485.3      |       3546.6    |    2571.2  |        3535.6      |         3553.7    
                          f32 fwd_gen B=1024, M=512, K=16    |         8227.2      |       9493.3    |   13631.6  |        9304.6      |         9366.8    
                          f16 fwd_gen B=1024, M=512, K=16    |         8984.2      |       9776.3    |   11800.1  |        9749.6      |         9792.3    
                          f32 fwd_gen B=1024, M=512, K=32    |         9427.6      |      10785.0    |   14709.1  |       10639.1      |        10654.7    
                          f16 fwd_gen B=1024, M=512, K=32    |        10575.6      |      11382.1    |   12930.4  |       11418.6      |        11486.3    
                          f32 fwd_gen B=1024, M=512, K=64    |        12389.9      |      14538.2    |   17125.2  |       14344.8      |        14364.1    
                          f16 fwd_gen B=1024, M=512, K=64    |        13511.8      |      14935.9    |   15327.1  |       14994.5      |        15115.0    
                          f32 fwd_gen B=1024, M=512, K=128   |        24861.4      |      27843.8    |   21823.0  |       27829.5      |        27906.3    
                          f16 fwd_gen B=1024, M=512, K=128   |        26382.5      |      28023.5    |   19505.7  |       27920.9      |        28025.3    
                          f32 fwd_gen B=1024, M=512, K=256   |        53099.8      |      54106.3    |   38930.0  |       53523.7      |        53627.9    
                          f16 fwd_gen B=1024, M=512, K=256   |        54239.2      |      55187.0    |   35710.6  |       54055.5      |        54084.8    
                          f32 fwd_gen B=1024, M=1024, K=16   |        31782.9      |      37211.3    |   54015.1  |       36594.9      |        36594.6    
                          f16 fwd_gen B=1024, M=1024, K=16   |        35311.4      |      38279.1    |   47910.3  |       38532.4      |        38541.1    
                          f32 fwd_gen B=1024, M=1024, K=32   |        36947.7      |      42861.4    |   58555.2  |       42292.7      |        42117.0    
                          f16 fwd_gen B=1024, M=1024, K=32   |        41108.5      |      45115.9    |   52625.2  |       45330.7      |        44784.5    
                          f32 fwd_gen B=1024, M=1024, K=64   |        48016.6      |      58303.1    |   68552.6  |       57354.0      |        57593.6    
                          f16 fwd_gen B=1024, M=1024, K=64   |        53431.2      |      60617.7    |   61472.2  |       59465.5      |        59602.4    
                          f32 fwd_gen B=1024, M=1024, K=128  |        96869.9      |     112773.9    |   85693.9  |      110984.7      |       111456.0    
                          f16 fwd_gen B=1024, M=1024, K=128  |       104249.1      |     115895.2    |   78807.0  |      112069.1      |       112436.4    
                          f32 fwd_gen B=1024, M=1024, K=256  |       213742.3      |     216221.5    |  152261.6  |      214782.3      |       214158.4    
                          f16 fwd_gen B=1024, M=1024, K=256  |       214928.0      |     220271.4    |  140972.8  |      218751.4      |       218656.4    
  (Tesla_V100_SXM2_16GB)  f32 fwd_gen B=256, M=128, K=16     |           96.7      |        105.7    |     176.1  |         105.9      |           98.9    
                          f16 fwd_gen B=256, M=128, K=16     |           49.9      |         51.6    |     104.1  |          51.2      |           51.3    
                          f32 fwd_gen B=256, M=128, K=32     |          103.1      |        108.0    |     143.1  |         110.8      |          111.4    
                          f16 fwd_gen B=256, M=128, K=32     |           52.1      |         57.4    |     103.9  |          56.9      |           56.9    
                          f32 fwd_gen B=256, M=128, K=64     |          137.5      |        147.1    |     198.9  |         156.2      |          156.6    
                          f16 fwd_gen B=256, M=128, K=64     |           72.1      |         80.7    |     103.7  |          82.2      |           82.0    
                          f32 fwd_gen B=256, M=128, K=128    |          255.9      |        255.2    |     325.8  |         256.1      |          257.6    
                          f16 fwd_gen B=256, M=128, K=128    |          111.6      |        108.5    |     133.9  |         109.2      |          109.4    
                          f32 fwd_gen B=256, M=128, K=256    |          506.8      |        499.9    |     618.6  |         505.4      |          509.2    
                          f16 fwd_gen B=256, M=128, K=256    |          218.5      |        195.6    |     202.4  |         196.9      |          196.8    
                          f32 fwd_gen B=256, M=512, K=16     |         1135.0      |       1237.6    |    1758.3  |        1247.8      |         1247.5    
                          f16 fwd_gen B=256, M=512, K=16     |          488.1      |        613.2    |     791.7  |         608.0      |          608.1    
                          f32 fwd_gen B=256, M=512, K=32     |         1340.7      |       1467.9    |    1922.4  |        1474.6      |         1474.9    
                          f16 fwd_gen B=256, M=512, K=32     |          508.3      |        634.9    |     832.3  |         629.3      |          628.7    
                          f32 fwd_gen B=256, M=512, K=64     |         1770.1      |       2057.3    |    2263.9  |        2134.8      |         2137.5    
                          f16 fwd_gen B=256, M=512, K=64     |          644.4      |        866.9    |     980.7  |         855.4      |          855.6    
                          f32 fwd_gen B=256, M=512, K=128    |         3447.7      |       3695.5    |    3655.4  |        3736.1      |         3738.7    
                          f16 fwd_gen B=256, M=512, K=128    |         1108.1      |       1334.6    |    1153.5  |        1325.4      |         1328.0    
                          f32 fwd_gen B=256, M=512, K=256    |         7351.3      |       7268.1    |    6370.5  |        7383.2      |         7401.0    
                          f16 fwd_gen B=256, M=512, K=256    |         2898.9      |       2580.2    |    1728.6  |        2572.8      |         2577.9    
                          f32 fwd_gen B=256, M=1024, K=16    |         4433.9      |       4859.4    |    7049.5  |        4883.5      |         4880.1    
                          f16 fwd_gen B=256, M=1024, K=16    |         1856.1      |       2380.3    |    3336.3  |        2363.7      |         2360.8    
                          f32 fwd_gen B=256, M=1024, K=32    |         5248.6      |       5729.5    |    7669.2  |        5769.3      |         5786.9    
                          f16 fwd_gen B=256, M=1024, K=32    |         1904.7      |       2443.2    |    3405.2  |        2422.7      |         2419.7    
                          f32 fwd_gen B=256, M=1024, K=64    |         6868.1      |       8226.8    |    9067.3  |        8438.9      |         8431.7    
                          f16 fwd_gen B=256, M=1024, K=64    |         2383.6      |       3206.4    |    3792.2  |        3168.3      |         3170.2    
                          f32 fwd_gen B=256, M=1024, K=128   |        13507.2      |      14722.4    |   14621.6  |       14742.7      |        14863.6    
                          f16 fwd_gen B=256, M=1024, K=128   |         4112.2      |       4959.0    |    4272.9  |        4912.0      |         4914.0    
                          f32 fwd_gen B=256, M=1024, K=256   |        28764.4      |      28543.4    |   25564.5  |       28812.2      |        28807.2    
                          f16 fwd_gen B=256, M=1024, K=256   |        11490.6      |       9820.2    |    6359.6  |        9802.0      |         9801.5    
                          f32 fwd_gen B=384, M=192, K=88     |          737.7      |        793.7    |     763.5  |         786.1      |          794.2    
                          f16 fwd_gen B=384, M=192, K=88     |          281.2      |        303.5    |     316.3  |         299.5      |          300.5    
                          f32 fwd_gen B=1024, M=128, K=16    |          306.0      |        322.0    |     441.1  |         324.4      |          325.0    
                          f16 fwd_gen B=1024, M=128, K=16    |          150.0      |        170.0    |     231.1  |         168.7      |          169.0    
                          f32 fwd_gen B=1024, M=128, K=32    |          369.5      |        395.9    |     525.8  |         397.7      |          397.2    
                          f16 fwd_gen B=1024, M=128, K=32    |          166.8      |        184.8    |     259.8  |         184.0      |          184.2    
                          f32 fwd_gen B=1024, M=128, K=64    |          505.5      |        544.5    |     687.5  |         563.1      |          563.2    
                          f16 fwd_gen B=1024, M=128, K=64    |          235.3      |        269.3    |     326.2  |         272.5      |          271.9    
                          f32 fwd_gen B=1024, M=128, K=128   |          973.5      |        977.7    |    1136.3  |         986.8      |          987.2    
                          f16 fwd_gen B=1024, M=128, K=128   |          394.6      |        398.1    |     452.7  |         394.9      |          395.3    
                          f32 fwd_gen B=1024, M=128, K=256   |         1926.9      |       1905.7    |    1957.4  |        1929.1      |         1935.0    
                          f16 fwd_gen B=1024, M=128, K=256   |          822.9      |        727.9    |     722.4  |         724.4      |          730.9    
                          f32 fwd_gen B=1024, M=512, K=16    |         4401.8      |       4823.9    |    7164.3  |        4850.3      |         4849.6    
                          f16 fwd_gen B=1024, M=512, K=16    |         1884.8      |       2360.9    |    3075.1  |        2342.2      |         2340.5    
                          f32 fwd_gen B=1024, M=512, K=32    |         5266.4      |       5804.0    |    7961.0  |        5798.2      |         5825.9    
                          f16 fwd_gen B=1024, M=512, K=32    |         1969.2      |       2468.3    |    3237.7  |        2424.2      |         2444.1    
                          f32 fwd_gen B=1024, M=512, K=64    |         7000.3      |       8197.7    |    9348.5  |        8467.4      |         8455.4    
                          f16 fwd_gen B=1024, M=512, K=64    |         2509.9      |       3382.5    |    3862.3  |        3350.0      |         3369.2    
                          f32 fwd_gen B=1024, M=512, K=128   |        13816.2      |      14762.9    |   14900.5  |       15005.9      |        14905.7    
                          f16 fwd_gen B=1024, M=512, K=128   |         4337.4      |       5266.2    |    4526.5  |        5226.0      |         5249.9    
                          f32 fwd_gen B=1024, M=512, K=256   |        28982.3      |      28522.4    |   26872.6  |       28879.7      |        29014.1    
                          f16 fwd_gen B=1024, M=512, K=256   |        11576.0      |      10154.9    |    6866.8  |       10081.9      |        10115.5    
                          f32 fwd_gen B=1024, M=1024, K=16   |        17366.6      |      19398.1    |   27494.8  |       19117.6      |        19148.5    
                          f16 fwd_gen B=1024, M=1024, K=16   |         7167.8      |       9193.9    |   13262.2  |        9100.6      |         9150.4    
                          f32 fwd_gen B=1024, M=1024, K=32   |        20699.6      |      22896.1    |   29659.0  |       22920.4      |        22943.7    
                          f16 fwd_gen B=1024, M=1024, K=32   |         7460.4      |       9594.2    |   13368.0  |        9471.4      |         9402.2    
                          f32 fwd_gen B=1024, M=1024, K=64   |        27309.9      |      32301.6    |   36738.6  |       33392.8      |        33420.6    
                          f16 fwd_gen B=1024, M=1024, K=64   |         9288.1      |      12763.3    |   15157.4  |       12591.3      |        12483.4    
                          f32 fwd_gen B=1024, M=1024, K=128  |        53630.7      |      58721.3    |   57101.4  |       58951.9      |        58947.5    
                          f16 fwd_gen B=1024, M=1024, K=128  |        16094.6      |      19776.1    |   17000.2  |       19653.6      |        19595.3    
                          f32 fwd_gen B=1024, M=1024, K=256  |       115072.4      |     113784.2    |  101677.0  |      114671.9      |       114939.2    
                          f16 fwd_gen B=1024, M=1024, K=256  |        44713.3      |      38886.8    |   25461.1  |       38539.6      |        38517.7    

Times are in microseconds (us).

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Sep 12, 2022
@danthe3rd danthe3rd changed the title [WIP] Store and update output in RF Store and update output in RF Sep 12, 2022
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

Merging #388 (8b67017) into pipeline (ec4ca77) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           pipeline     #388   +/-   ##
=========================================
  Coverage     91.11%   91.11%           
=========================================
  Files            75       75           
  Lines          4345     4345           
=========================================
  Hits           3959     3959           
  Misses          386      386           
Flag Coverage Δ
Python 91.11% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@fmassa fmassa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The speedups looks great! (And compilation time didn't seem affected on CI).

There seems to be some regressions for V100 for large batch sizes and K (like f16 fwd_gen B=256, M=1024, K=256), but the improvements on A100 are pretty amazing so let's get this in.

Base automatically changed from pipeline to main September 13, 2022 15:00
@danthe3rd danthe3rd merged commit 6ebb051 into main Sep 13, 2022
@danthe3rd danthe3rd deleted the outputrf branch September 13, 2022 15:02
bertmaher pushed a commit to bertmaher/xformers that referenced this pull request Dec 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants