16 Commits

Author SHA1 Message Date
Violet
6fb09f393a Handle WARP_SZ (#412)
* Add tests for `WARP_SZ`

* Handle WARP_SZ in parser
2025-07-16 11:02:17 -07:00
Violet
5cb0a9b8e8 Add support for bar.red.and.pred (#402)
Implements bar.red.and.pred and bar.red.or.pred, using the undocument __ockl_wgred functions. Doesn't yet add support for numbered barriers and threadcount, as these are not needed for llm.c.
2025-07-03 11:56:20 -07:00
Violet
1cf345329c Make derive_parser work with all optional arguments (#397)
The current implementation using `winnow`'s `opt` does not work for optional arguments that are in the middle of the command. For example, `bar{.cta}.red.op.pred   p, a{, b}, {!}c;`. This is because `opt` is greedy, and will always match `{, b}` instead of `,{!} c`. This change switches to using a custom combinator that handles this properly
2025-06-30 18:54:31 -07:00
Andrzej Janik
2a374ad880 Add fp saturation, fix various bugs in cvt instruction exposed by ptx_tests (#379) 2025-06-16 19:14:16 -07:00
Andrzej Janik
3361046760 Fix mad.wide, replace external CUDA library in test with our own (#376) 2025-06-09 21:33:18 -07:00
Andrzej Janik
c790ab45ec Redo logging to better log dark API and performance libraries (#372) 2025-06-09 15:29:14 -07:00
Andrzej Janik
cc83b9f1f6 Create infrastructure for performance libraries (#363) 2025-05-01 22:37:18 +02:00
Joëlle van Essen
7cdab7abc2 Implement mul24 (#351) 2025-04-08 12:27:19 +02:00
Andrzej Janik
d704e92c97 Support instruction modes (denormal and rounding) on AMD GPUs (#342) 2025-03-17 21:37:26 +01:00
Andrzej Janik
646d746e02 Start working on mul24 2025-02-07 19:37:11 +00:00
Andrzej Janik
7a6df9dcbf Fix host code and update to CUDA 12.4 (#299) 2024-12-02 00:29:57 +01:00
Andrzej Janik
b4cb3ade63 Recover from and report unknown instructions and directives (#295) 2024-11-02 15:57:57 +01:00
Andrzej Janik
3870a96592 Re-enable all failing PTX tests (#277)
Additionally remove unused compilation paths
2024-10-16 03:15:48 +02:00
Andrzej Janik
c92abba2bb Refactor compilation passes (#270)
The overarching goal is to refactor all passes so they are module-scoped and not function-scoped. Additionally, make improvements to the most egregiously buggy/unfit passes (so the code is ready for the next major features: linking, ftz handling) and continue adding more code to the LLVM backend
2024-09-23 16:33:46 +02:00
Andrzej Janik
46def3e7e0 Connect new parser to LLVM bitcode backend (#269)
This is very incomplete. Just enough code to emit LLVM bitcode and continue further development
2024-09-13 01:07:31 +02:00
Andrzej Janik
193eb29be8 PTX parser rewrite (#267)
Replaces traditional LALRPOP-based parser with winnow-based parser to handle out-of-order instruction modifer. Generate instruction type and instruction visitor from a macro instead of writing by hand. Add separate compilation path using the new parser that only works in tests for now
2024-09-04 15:47:42 +02:00