├── .gitignore ├── README.md └── learn_ptx ├── __init__.py ├── context.py ├── elemwise.py ├── fps.py ├── kernels ├── elemwise_sqrt.ptx ├── fps_block.ptx ├── fps_block_v2.ptx ├── matmul_big_blocks.ptx ├── matmul_big_blocks_v2.ptx ├── matmul_big_blocks_v3.ptx ├── matmul_big_blocks_v4.ptx ├── matmul_big_blocks_v5.ptx ├── matmul_inner_loop.ptx ├── matmul_simple_block_v1.ptx ├── matmul_simple_block_v2.ptx ├── matmul_simple_block_v3.ptx ├── matmul_simple_block_v4.ptx ├── matmul_wmma_v1.ptx ├── matmul_wmma_v10.ptx ├── matmul_wmma_v2.ptx ├── matmul_wmma_v3.ptx ├── matmul_wmma_v4.ptx ├── matmul_wmma_v5.ptx ├── matmul_wmma_v6.ptx ├── matmul_wmma_v7.ptx ├── matmul_wmma_v8.ptx ├── matmul_wmma_v9.ptx ├── reduction_all_max_naive.ptx ├── reduction_all_max_naive_opt.ptx ├── reduction_all_max_naive_opt_flexible.ptx ├── reduction_all_max_naive_opt_flexible_novec.ptx ├── reduction_all_max_naive_opt_flexible_sin.ptx ├── reduction_all_max_naive_opt_flexible_sin_cpasync.ptx ├── reduction_all_max_naive_opt_flexible_widevec.ptx ├── reduction_all_max_naive_opt_novec.ptx ├── reduction_bool_naive.ptx ├── reduction_bool_warp.ptx ├── reduction_bool_warp_vec.ptx ├── reduction_trans_bool_blocked.ptx ├── reduction_trans_bool_naive.ptx ├── sort_bitonic_block.ptx ├── sort_bitonic_block_v2.ptx ├── sort_bitonic_global.ptx ├── sort_bitonic_global_v2.ptx ├── sort_bitonic_warp.ptx ├── sort_bitonic_warp_v2.ptx ├── sort_bitonic_warp_v3.ptx └── sort_merge_global.ptx ├── matmul.py ├── reduction.py └── sort.py /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/README.md -------------------------------------------------------------------------------- /learn_ptx/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /learn_ptx/context.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/context.py -------------------------------------------------------------------------------- /learn_ptx/elemwise.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/elemwise.py -------------------------------------------------------------------------------- /learn_ptx/fps.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/fps.py -------------------------------------------------------------------------------- /learn_ptx/kernels/elemwise_sqrt.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/elemwise_sqrt.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/fps_block.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/fps_block.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/fps_block_v2.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/fps_block_v2.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_big_blocks.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_big_blocks.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_big_blocks_v2.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_big_blocks_v2.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_big_blocks_v3.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_big_blocks_v3.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_big_blocks_v4.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_big_blocks_v4.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_big_blocks_v5.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_big_blocks_v5.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_inner_loop.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_inner_loop.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_simple_block_v1.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_simple_block_v1.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_simple_block_v2.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_simple_block_v2.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_simple_block_v3.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_simple_block_v3.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_simple_block_v4.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_simple_block_v4.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_wmma_v1.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_wmma_v1.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_wmma_v10.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_wmma_v10.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_wmma_v2.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_wmma_v2.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_wmma_v3.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_wmma_v3.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_wmma_v4.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_wmma_v4.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_wmma_v5.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_wmma_v5.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_wmma_v6.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_wmma_v6.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_wmma_v7.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_wmma_v7.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_wmma_v8.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_wmma_v8.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/matmul_wmma_v9.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/matmul_wmma_v9.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/reduction_all_max_naive.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/reduction_all_max_naive.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/reduction_all_max_naive_opt.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/reduction_all_max_naive_opt.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/reduction_all_max_naive_opt_flexible.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/reduction_all_max_naive_opt_flexible.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/reduction_all_max_naive_opt_flexible_novec.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/reduction_all_max_naive_opt_flexible_novec.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/reduction_all_max_naive_opt_flexible_sin.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/reduction_all_max_naive_opt_flexible_sin.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/reduction_all_max_naive_opt_flexible_sin_cpasync.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/reduction_all_max_naive_opt_flexible_sin_cpasync.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/reduction_all_max_naive_opt_flexible_widevec.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/reduction_all_max_naive_opt_flexible_widevec.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/reduction_all_max_naive_opt_novec.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/reduction_all_max_naive_opt_novec.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/reduction_bool_naive.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/reduction_bool_naive.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/reduction_bool_warp.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/reduction_bool_warp.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/reduction_bool_warp_vec.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/reduction_bool_warp_vec.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/reduction_trans_bool_blocked.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/reduction_trans_bool_blocked.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/reduction_trans_bool_naive.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/reduction_trans_bool_naive.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/sort_bitonic_block.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/sort_bitonic_block.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/sort_bitonic_block_v2.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/sort_bitonic_block_v2.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/sort_bitonic_global.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/sort_bitonic_global.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/sort_bitonic_global_v2.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/sort_bitonic_global_v2.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/sort_bitonic_warp.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/sort_bitonic_warp.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/sort_bitonic_warp_v2.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/sort_bitonic_warp_v2.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/sort_bitonic_warp_v3.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/sort_bitonic_warp_v3.ptx -------------------------------------------------------------------------------- /learn_ptx/kernels/sort_merge_global.ptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/kernels/sort_merge_global.ptx -------------------------------------------------------------------------------- /learn_ptx/matmul.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/matmul.py -------------------------------------------------------------------------------- /learn_ptx/reduction.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/reduction.py -------------------------------------------------------------------------------- /learn_ptx/sort.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unixpickle/learn-ptx/HEAD/learn_ptx/sort.py --------------------------------------------------------------------------------