Commit Graph

1365 Commits

Author SHA1 Message Date
Philippe Tillet
f07995d6f8 [CI] Updated build status URL 2021-02-10 14:04:53 -05:00
Philippe Tillet
0125ab1740 [CI] Added benchmarking to CI script (#65) 2021-02-10 14:01:47 -05:00
Philippe Tillet
c847cc6320 [DRIVER] Added options for developers to cache PTX file so that ti can
be manually modified
2021-02-09 00:09:10 -05:00
Philippe Tillet
53fd9631ef [PYTHON] Added automated benchmark script (#63)
This adds a bench functionality to the setup.py that can be used to run the benchmark suite and generates a bunch of csv files (and optionally plots)

python setup.py bench
python setup.py bench --with-plots
python setup.py bench --filter=cross_entropy
2021-02-08 15:16:41 -05:00
Philippe Tillet
ae3c6a1022 [PYTHON] Removed .softmax from ops/__init__.py following previous commit 2021-02-07 17:02:11 -05:00
Philippe Tillet
9ed392db9c [PYTHON] Removed support for dense softmax
Interest seems limited now that it is fused in cross_entropy. Will
likely re-add once it's easier to share code between ops
2021-02-07 16:46:47 -05:00
Jared Kaplan
db55ef4fa7 Added a Softmax Xent Op (#53)
Also includes a bugfix in kernel.py to set the device before registering the c++ function object
2021-02-07 12:53:42 -08:00
Philippe Tillet
c8b5cb4ad5 [PYTHON] Made codebase pep8 compliant 2021-02-07 15:06:57 -05:00
Philippe Tillet
14fee16886 [PYTHON] Some cleaning of the PyBind11 wrappers (#62) 2021-02-06 20:10:44 -05:00
Philippe Tillet
d5e1337782 [CI] Fixed unmerged YAML file 2021-02-06 17:17:29 -05:00
Philippe Tillet
80f03f2a76 [CI] Updated trigger rules and status badge link 2021-02-06 17:10:00 -05:00
Philippe Tillet
c7d4085f3d [CI] Improvement of CI pipeline (#60) 2021-02-06 16:59:46 -05:00
Philippe Tillet
fbcf36d40a [GITHUB] Modified run-on property of run-pipeline.yaml 2021-02-06 15:49:58 -05:00
Philippe Tillet
dae6035b5a [CI] Added Github Actions (#59) 2021-02-06 15:47:52 -05:00
Philippe Tillet
4165e574a4 [GENERAL] Added continuous integration 2021-02-05 14:31:58 -05:00
Philippe Tillet
d1e39d7f98 [PYTHON][OPS][BLOCKSPARSE] Now rounding softmax tile sizes to next power
of 2
2021-02-04 16:13:45 -05:00
Philippe Tillet
4a784ff13a [LANG] Now requiring tiles have power of 2 number of elements 2021-02-04 16:13:33 -05:00
Philippe Tillet
8ab5498d26 [TESTS] test_matmul.py now plots benchmarks 2021-02-04 15:35:53 -05:00
Philippe Tillet
7116df3a32 [PYTHON] Added triton.__version__ string 2021-02-03 17:39:55 -05:00
Philippe Tillet
1726197bb4 Improvements w/ Auto-Tuning and standard benchmarks (#57)
[PYTHON] Bug-fixes in the auto-tuning module and improvement of the existing API for it
2021-02-03 16:37:21 -05:00
Philippe Tillet
8ab68f5424 [PYTHON] Added benchmark code for CUTLASS 2021-01-31 21:23:01 -05:00
Philippe Tillet
4a61e65fc9 [LANG] Added __debug_barrier() call to force insertion of a CUDA
__syncthreads
2021-01-31 20:09:36 -05:00
Philippe Tillet
6e77538087 [RUNTIME] Auto-tuning now works as expected when the values of
autotune_key change
2021-01-31 19:23:51 -05:00
Philippe Tillet
d60b989bec [PYTHON] Fixed issue with IS_TK_DIV_K 2021-01-31 13:36:55 -05:00
Philippe Tillet
ffb1e14268 [TUTORIALS] Fixed TYPO in CMakeLists.txt 2021-01-31 13:36:55 -05:00
Philippe Tillet
7db9f56d61 [PYTHON] Added benchmarking code 2021-01-31 12:59:18 -05:00
Philippe Tillet
0b23f95b20 [RUNTIME] Added option to print LLVM-IR
Also includes appropriate driver code change for that
2021-01-31 01:01:32 -05:00
Philippe Tillet
6ecc40e2be [PYTHON][OPS] Added block-sparse softmax 2021-01-30 20:27:20 -05:00
Philippe Tillet
112bca3b8f [PYTHON] Added utility to read single Triton kernel from provided file
in triton.read
2021-01-30 18:09:49 -05:00
Philippe Tillet
47acb85769 [LANG] Fixed parsing error for built-in functions exp/log/sqrtf 2021-01-29 20:39:57 -05:00
Philippe Tillet
79d098450f [PYTHON][TESTS][DOC] Various improvement of the API and code quality:
* Simplified `triton.kernel` API to achieve lower latency:
  > .data_ptr() must now be passed as kernel argument. No more implicit
conversion from torch.tensor
  > compilation options are now constant attributes, i.e., opt.d('VAR')
becomes opt.VAR
  > torch.device must now be passed explicitly to triton.kernel (no
longer inferred from torch.tensor arguments)
* C++ tests moved to `python/tests/`
* C++ tutorial created in `tutorials/`
* Python tutorial created in python/tutorials/
* Version changed to 1.0alpha
* No longer copying C++ headers into the Python package
* added python/triton/ops/ package for pre-written Triton ops
2021-01-29 17:27:16 -05:00
Philippe Tillet
aef1b2b3c9 [CODEGEN] Fixed bug in recoalesce_inst LLVM codegen 2021-01-19 19:19:51 -05:00
Philippe Tillet
e11077eab9 [RUNTIME] Disable error on spills 2021-01-14 20:33:34 -05:00
Philippe Tillet
299cfe743f [CODEGEN] Fixed issue in traversal order for atomic_add and store_inst 2021-01-14 17:41:26 -05:00
Philippe Tillet
4f80fea855 [TESTS] Fixed bug in how test arguments are enqueued 2021-01-11 21:06:04 -05:00
Philippe Tillet
af080740f2 [GENERAL] Merged v1.0alpha into master. Added features are:
- A100 support via mma.16816
- Thread swizzling for conflict-free shared memory accesses without
padding
- Complete overhaul of the LLVM code generation in
codegen/selection/generator.cc to remove overengineering
- Added debugging capabilities in the Python binding
- Compilation error for kernels that spill
2021-01-11 19:23:24 -05:00
Philippe Tillet
0cf2d22ffc [PYTHON] Added TRITON_DEBUG_MODE which reallocates input tensors outside of the pytorch memory pool to spot out-of-bounds accesses more easily 2020-12-26 15:15:46 -05:00
Philippe Tillet
836173434e [LANG] Added hacky min/max 2020-12-23 18:17:52 -05:00
Philippe Tillet
f374d39cbe Merge pull request #45 from daadaada/master
[LANG] Add support for PREFIX_INC, PREFIX_DEC, POSTFIX_INC and POSTFIX_DEC
2020-12-09 02:13:31 -05:00
Yan Da
1b300bdcbf [IR] Check constant_int type 2020-12-09 15:10:19 +08:00
Yan Da
31839cd269 [LANG] Fix gep bug in INC 2020-12-09 14:36:00 +08:00
Yan Da
70e6f38fe3 [LANG] Add support for POSTFIX_INC and POSTFIX_DEC, and pointer type 2020-12-09 13:42:21 +08:00
Yan Da
8856b62af9 [LANG] Add support for PREFIX_INC and PREFIX_DEC. 2020-12-09 12:35:24 +08:00
Philippe Tillet
d913cbd916 [VERSION] 0.2.3 -> 0.3.0 2020-12-08 23:34:55 -05:00
Philippe Tillet
75131b4622 [LANG] Added some more atomic_add support 2020-12-01 22:31:32 -05:00
Philippe Tillet
ec5c2ad571 [DRIVER] Better exception handling of invalid ptx 2020-11-27 17:00:11 -05:00
Philippe Tillet
1d2b1b72fc [DRIVER] Removed deprecated files and functions 2020-11-26 23:21:28 -05:00
Philippe Tillet
069083e28a [DRIVER] Removed obsolete SetArg 2020-11-26 23:12:39 -05:00
Philippe Tillet
22fc1cef16 [PYTHON] Context switching logic moved to PyTorch 2020-11-26 22:46:27 -05:00
Philippe Tillet
7710e048f4 [DRIVER] Simplified Driver API by substantially removing reliance on driver::context 2020-11-26 00:38:25 -05:00