Commit Graph

58 Commits

Author SHA1 Message Date
Philippe Tillet
cd21151b98 [GENERAL] Fixed some undefined behavior with GCC-9 2020-05-11 11:07:21 -04:00
Philippe Tillet
9da8fe11ed [CODEGEN] Fixed bug that caused missing recoalescing for some transpose
operations
2020-05-11 00:26:03 -04:00
Philippe Tillet
7c09ff80eb [CORE] Fixed several issues that arose in the development of the
torch-blocksparse package:

* Now using warp shuffle in reductions when possible
* Various bugfixes in layout inference
* Added INFINITY, exponential and select
* Better error messages for unimplemented constructs
2020-03-31 18:57:28 -04:00
Philippe Tillet
7621aeda3f [CODEGEN][TRANSFORM][PEEPHOLE] Fixed bug in *1 multiplication 2020-02-19 00:18:55 -05:00
Philippe Tillet
2fcf5cec5b [TRITON][CODEGEN] Fixed flawed assert() 2020-01-24 15:25:00 -05:00
Philippe Tillet
78b98fb7cf [GENERAL] Cleaned polymorphic structure of layouts analysis pass 2020-01-21 11:38:39 -05:00
Philippe Tillet
382ca2c745 [CODEGEN][ANALYSIS] cleaning: moving towards better polymorphism for
tile layouts
2020-01-20 12:43:04 -05:00
Philippe Tillet
fbf2a3f56f [CODEGEN][TRANSFORM] some bug-fixes for FP32 einsum 2020-01-20 12:42:53 -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
0ec213547c [PYTHON][KERNEL] Added benchmarking functionalities for kernels 2019-10-28 00:30:04 -04:00
Philippe Tillet
e11557855f [PYTHON] [OPS] Added einsum implementation 2019-10-26 22:14:50 -04:00
Philippe Tillet
0770ccf537 [codegen] [selection] disassociation prototype 2019-10-25 09:39:46 -04:00
Philippe Tillet
de6fdd5625 [general] removed useless files and includes 2019-10-20 19:29:48 -04:00
Philippe Tillet
b43454c9b7 [codegen] [membar] view do not write to shared memory 2019-10-17 22:38:41 -04:00
Philippe Tillet
4bfe998cc8 [codegen] [selection] everything is now implemented with visitor 2019-10-16 18:10:03 -04:00
Philippe Tillet
7d77f34db0 [codegen] more cleaning 2019-10-11 23:40:27 -04:00
Philippe Tillet
323c90e431 ugh 2019-10-11 19:05:54 -04:00
Philippe Tillet
4efd0a3c6b [codegen] more cleaning 2019-10-10 15:52:03 -04:00
Philippe Tillet
9bc6df4fd1 [codegen] more cleaning 2019-10-09 15:05:44 -04:00
Philippe Tillet
650c43ca07 [codegen] more cleaning 2019-10-07 18:06:54 -04:00
Philippe Tillet
ed1b2bc563 more work on padding 2019-09-27 22:15:30 -04:00
Philippe Tillet
575dd06be3 [codegen] more progress towards unified dot implementation 2019-09-26 14:01:28 -04:00
Philippe Tillet
f0013f8bf1 [codegen] [allocation] fixed issues in HMMA 2019-09-23 17:54:42 -04:00
Philippe Tillet
856e7baa04 [test] added tests for copy 2019-09-23 12:07:24 -04:00
Philippe Tillet
001973630e [codegen] cleaned up shared memory and double-buffering logic 2019-09-21 22:21:40 -04:00
Philippe Tillet
43d88154bd [codegen] cleaning-up / formalizing shared-memory passes 2019-09-20 16:01:12 -04:00
Philippe Tillet
e35be1ddcf [ir][instruction] added identifier for each instruction 2019-09-19 16:25:36 -04:00
Philippe Tillet
1fd9be27ee [tests][bench] now benchmarking all variants of copy 2019-09-17 22:17:58 -04:00
Philippe Tillet
307c1128d5 [codegen] removed vectorization pass (now part of selection) 2019-09-17 15:21:10 -04:00
Philippe Tillet
e01e623333 [codegen][auto-coalesce] more debugging 2019-09-16 20:34:08 -04:00
Philippe Tillet
e184bad9a1 [auto-coalesce] more bugfixes 2019-09-16 13:28:23 -04:00
Philippe Tillet
8d37a55a21 [codegen][analysis] cleaned-up tiling formalism 2019-09-15 21:14:14 -04:00
Philippe Tillet
495163e0e8 some more cleaning 2019-09-14 16:53:13 -04:00
Philippe Tillet
0d8f59dcec [codegen][selection] some cleaning 2019-09-14 16:04:06 -04:00
Philippe Tillet
66e32b3074 [codegen][grid] some cleaning 2019-09-14 13:05:53 -04:00
Philippe Tillet
8ae779206f more fixes 2019-09-14 02:36:11 -04:00
Philippe Tillet
eae02b99e5 [codegen][coalesce] fixed stale users in cloned instructions 2019-09-13 19:16:04 -04:00
Philippe Tillet
579a662e60 [codegen][coalesce] more bugfixes 2019-09-13 14:17:21 -04:00
Philippe Tillet
11ff27d638 [codegen][coalesce] some bugfix for phi-nodes 2019-09-12 22:44:07 -04:00
Philippe Tillet
0c41bade07 [codegen] basic recoalescing working 2019-09-10 23:25:47 -04:00
Philippe Tillet
c622619bcb more progress 2019-09-10 00:37:51 -04:00
Philippe Tillet
0cbbcce5c0 added missing file 2019-09-08 21:38:08 -04:00
Philippe Tillet
a842d337c5 [general] various cleaning and bugfix:
* added copy1d and copy2d benchmark
* fixed issue in reassociation pass
2019-09-02 23:00:49 -04:00
Philippe Tillet
7e0af2118c [codegen] worked around bug seemingly from nvptx/ptxas by simplifying multiplications by 1:
- Generated LLVM-IR looked correct
- Illegal addressing disappeared when running cuda-memcheck
- Illegal addressing disappeared when using nvptx-short-pointer
2019-08-30 16:45:14 -07:00
Philippe Tillet
37cbcfabd0 [examples] back to 96 TFLOPS on V100 2019-08-26 22:49:14 -07:00
Philippe Tillet
96b4d5e411 [examples] multiple transposition schemes now supported 2019-08-24 13:08:38 -07:00
Philippe Tillet
732156b942 [general] rename *.cpp -> *.cc 2019-08-23 19:06:39 -07:00
Philippe Tillet
a110a7e8cf [ir] changed type of tile shapes from constant_int* to int 2019-08-23 17:49:21 -07:00
Philippe Tillet
8798d240dc matmul test passes 2019-08-23 17:13:30 -07:00
Philippe Tillet
0970fe12dd [general] cleaned tensorflow source code generation 2019-08-18 15:39:36 -07:00