Commit Graph

57 Commits

Author SHA1 Message Date
Philippe Tillet
14fee16886 [PYTHON] Some cleaning of the PyBind11 wrappers (#62) 2021-02-06 20:10:44 -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
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
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
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
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
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
Philippe Tillet
51025ca2ad [DRIVER] Improved performance of Host driver code 2020-11-12 02:11:45 -05:00
Philippe Tillet
6c5284ed3b [GENERAL] Various bugfixes 2020-11-11 14:44:56 -05:00
Philippe Tillet
81000db9e9 [PYTHON] Added option to show PTX source code in Python 2020-11-07 02:55:48 -05:00
Philippe Tillet
ced0f5f944 [GENERAL] Fix compatibility issue with older Torch versions 2020-11-03 16:02:02 -05:00
Philippe Tillet
e2c1ac8d24 [LANG] Added log intrinsic 2020-11-03 15:50:11 -05:00
Philippe Tillet
37ee888d88 [PYTHON] Cleaning C++ bindings 2020-11-02 15:06:08 -05:00
Philippe Tillet
0cbee3ec56 [CODEGEN] More work on the CPU backend 2020-09-14 10:59:40 -04:00
Philippe Tillet
3195aca452 [PYTHON] Added credits to Scott Gray for the idea used in launch.cc 2020-08-12 19:39:57 -04:00
Philippe Tillet
30ac1359b9 [RUNTIME] Lower-level interface for executing functions 2020-08-12 18:33:35 -04:00
Philippe Tillet
18a4cefec7 [CORE] Auto-tuning now copies scalar buffers. Still needs to copy all buffers that are both read from and written to. 2020-05-15 23:21:42 -04:00
Philippe Tillet
735215d9c4 [PYTHON] Added support for FP16 scalar kernel arguments 2020-05-15 16:37:25 -04:00
Philippe Tillet
2dd3fcb270 [CORE] Fixed bug for Multi-GPU 2020-05-04 18:36:44 -04:00
Philippe Tillet
0685fcb804 [PACKAGING] Added MANIFEST.in and some symlinks for better packaging 2020-05-04 10:09:30 -04:00
Philippe Tillet
4c2c244b91 [PYTHON][SRC][BINDING] Improved code portability across compilers 2020-04-17 13:51:47 -04:00
Philippe Tillet
f2daff85d2 [GENERAL] Improved caching mechanism:
* Now computing hash in libtriton
* Now only compiling a single pytorch hook per function signature
2020-02-24 16:36:50 -05:00
Philippe Tillet
6a4d42c1b8 [PYTHON][CORE] Deprecating Tensorflow support 2020-02-10 04:20:33 -05:00
Philippe Tillet
f278d9741a [GENERAL] Merged einsum feature branch. Various feature, performance
improvements and bugfixes:

* Added preliminary support for extended Einstein summation in PyTriton
* Significant performance improvement on FP32 kernels containing matrix
multiplication
* Added re-coalescing pass for FP16 kernels containing matrix
multiplication
* Various bugfixes
2020-01-20 12:42:48 -05:00
Philippe Tillet
f4bbbbe5e4 [PYTHON][OPS] Bugfix in conv fprop 2019-11-01 00:43:02 -04:00
Philippe Tillet
739a8d9061 some work on conv 2019-10-31 18:08:27 -04:00
Philippe Tillet
e0fe8d9058 [PYTHON][TENSORFLOW] More work 2019-10-30 18:39:58 -04:00
Philippe Tillet
9b0f1a0807 more stuff 2019-10-30 13:44:31 -04:00
Philippe Tillet
bf3dc63858 [PYTHON] Removed dead code for alloc_empty and register_scalar 2019-10-30 10:37:30 -04:00
Philippe Tillet
2b9355c9e4 [PYTHON][TENSORFLOW] Got rid of alloc_empty entirely; now doing
generating allocation code inside the tensorflow op
2019-10-30 01:38:30 -04:00
Philippe Tillet
d65a94c768 [PYTHON][OPS] Added batch normalization op 2019-10-29 17:29:11 -04:00
Philippe Tillet
448f4433d9 [PYTHON][KERNEL] Enforcing shapes to be known at compile-time for
TensorFlow Graph Execution
2019-10-29 00:48:53 -04:00
Philippe Tillet
0ec213547c [PYTHON][KERNEL] Added benchmarking functionalities for kernels 2019-10-28 00:30:04 -04:00
Philippe Tillet
e827d4f467 [python] [bindings] removed obsolete #include 2019-10-20 20:37:37 -04:00
Philippe Tillet
1f8fd525b5 [python] fixed warnings for pybind11 and pytorch 2019-09-05 20:28:00 -04:00
Philippe Tillet
2d6c8311e8 [python] upgraded pybind11 ; forcing torch tensors to be contiguous() 2019-09-05 12:30:51 -04:00
Philippe Tillet
58544d0523 [python] renamed src/tensorflow.cc -> src/bindings.cc 2019-09-05 09:39:58 -04:00
Philippe Tillet
ed0f706005 [python] fixed various issues in pytorch supoport 2019-09-05 00:19:42 -04:00
Philippe Tillet
cdbc9d4ecd [python] more generic gradient registration 2019-09-04 03:12:23 -04:00
Philippe Tillet
b747959a57 trying to work around tensorflow limitations 2019-09-04 01:54:43 -04:00
Philippe Tillet
2ccc915011 [python][examples] added template for blocksparse 2019-09-03 20:44:27 -04:00
Philippe Tillet
141a823799 [python] refactoring in anticipation of pytorch support 2019-08-29 18:08:51 -07:00
Philippe Tillet
d457482539 [codegen] fixed issue in double buffering pointer update 2019-08-28 17:50:45 -07:00
Philippe Tillet
7cb73f66e2 testing some register gradient 2019-08-26 19:25:58 -07:00
Philippe Tillet
9ece3eccc6 some cleaning 2019-08-26 17:28:24 -07:00
Philippe Tillet
4075949f80 [python] basic tensorflow wrapper working 2019-08-26 16:53:49 -07:00
Philippe Tillet
0e0399f866 more tests 2019-08-26 11:00:00 -07:00
Philippe Tillet
321d268a4a more progress 2019-08-25 21:26:09 -07:00