Commit graph

199 commits

Author SHA1 Message Date
Andrzej Janik
7ac67a89e9
Enable Geekbench 5 (#304) 2024-12-10 21:48:10 +01:00
Andrzej Janik
7a6df9dcbf
Fix host code and update to CUDA 12.4 (#299) 2024-12-02 00:29:57 +01:00
Andrzej Janik
970ba5aa25
Fix linking of AMD device libraries (#296)
It's weird that it fails without `-mno-link-builtin-bitcode-postopt`. I've tested it only on ROCm 6.2, might be broken on older or newer ROCm
2024-11-02 16:07:44 +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)
Some checks failed
Rust / Build and publish (Linux) (push) Has been cancelled
Rust / Build and publish (Windows) (push) Has been cancelled
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)
Some checks failed
Rust / Build and publish (Linux) (push) Has been cancelled
Rust / Build and publish (Windows) (push) Has been cancelled
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
Andrzej Janik
971951bc9e Improve reporting of recovered unrecognized statement/directive 2021-12-14 00:02:23 +01:00
Andrzej Janik
0ca14d740f Better reporting of unrecognized tokens 2021-12-13 22:25:26 +01:00
Andrzej Janik
7ba1586d6c Make all user errors recoverable 2021-12-13 17:20:06 +01:00
Andrzej Janik
816365e7df Fix shared munging pass and add fix cuModuleLoadData 2021-09-29 21:49:47 +00:00
Andrzej Janik
0172dc58e5 Redo shared memory transformation 2021-09-29 02:24:32 +02:00
Andrzej Janik
b763415006 Add CUDA tests showing problems with .shared unification 2021-09-27 00:42:10 +02:00
Andrzej Janik
c23be576e8 Finish fixing shared memory pass 2021-09-26 01:24:14 +02:00
Andrzej Janik
370c0bd09e Start implementing .shared unification 2021-09-24 01:31:50 +02:00
Andrzej Janik
9609f86033 Fix minor bugs 2021-09-19 00:39:43 +00:00
Andrzej Janik
afe9120868 Fix linkage 2021-09-18 22:49:00 +00:00
Andrzej Janik
04a411fe22 Have an implementation for vprintf 2021-09-18 20:22:47 +00:00
Andrzej Janik
ccf3c02ac1 Minor fixes 2021-09-18 01:36:12 +00:00
Andrzej Janik
3de01b3f8b Handle ld.volatile/st.volatile 2021-09-17 21:26:15 +00:00
Andrzej Janik
d5a4b068dd Redo handling of sregs 2021-09-17 20:53:44 +00:00
Andrzej Janik
6ef19d6501 Add early support for more sregs 2021-09-17 18:31:12 +00:00
Andrzej Janik
5b2352723f Implement function pointers and activemask 2021-09-17 16:24:25 +00:00
Andrzej Janik
ca0d8ec666 Add missing vray instructions 2021-09-16 01:25:09 +02:00
Andrzej Janik
467782b1d0 Fix some unhandled cases in cvt instruction 2021-09-14 23:38:06 +00:00
Andrzej Janik
2cd0fcb650 Parse and test const buffers 2021-09-14 22:41:46 +02:00
Andrzej Janik
986fa49097 Zero out buffer on creation 2021-09-13 23:43:50 +00:00
Andrzej Janik
dbb6f09ffa Continue HIP conversion 2021-09-13 17:59:40 +00:00
Andrzej Janik
da9cf4d583 Update tests, disable OpenCL-style shared mem conversion, emit linking information 2021-09-09 00:17:39 +00:00
Andrzej Janik
a27d1e119f Merge commit 'e2fbdf7d7b78ee360fe5fcc13ed1a7cca727c921' into amd 2021-09-08 23:07:54 +02:00
Andrzej Janik
e2fbdf7d7b Emit Execution mode for denorm flush 2021-09-08 23:05:52 +02:00
Andrzej Janik
18245be7d5 Make ptx unit tests run on AMD (except denormals) 2021-09-07 23:24:49 +00:00
Andrzej Janik
82510ce8fd Convert unit tests to HIP 2021-09-06 22:58:12 +02:00
Andrzej Janik
5bfc2a56b9 Remove all use of L0 2021-08-06 02:15:57 +02:00
Andrzej Janik
638786b0ec Hack enough functionality that AMD GPU code builds 2021-08-03 00:22:47 +02:00
Andrzej Janik
b4de21fbc5 Use calls to OpenCL builtins when translating sregs, do SPIRV->LLVM conversion on every build 2021-08-02 01:04:05 +02:00
Andrzej Janik
4a71fefb8a Change codegen for mul.wide 2021-08-01 19:20:08 +02:00
Andrzej Janik
8f68287b18 Tune generated code, add a workaround for geekbench 2021-07-25 15:19:43 +02:00
Andrzej Janik
9d4f26bd07 Finish converting to OpenCL 2021-07-22 00:20:33 +02:00
Andrzej Janik
58fb8a234c Synchronize through barrier 2021-07-06 00:16:46 +02:00
Andrzej Janik
ad2059872a Regenerate SPIR-V for ptx_impl and fix weird handling of ptr-ptr add or sub 2021-07-03 02:13:38 +02:00
Andrzej Janik
e328ecc550 Be more correct when emitting brev, refactor inst->func call pass 2021-07-02 22:45:09 +02:00
Andrzej Janik
b2a455e12e Bunch of tiny fixes and improvements 2021-06-28 01:40:35 +02:00
Andrzej Janik
55fbe1abb5 Fix bugs related to replay on Linux 2021-06-27 16:19:04 +02:00
Andrzej Janik
23874efe68 Allow ptr offsets to non-scalar types 2021-06-25 22:29:25 +02:00
Andrzej Janik
8ef6c3d8b6 Merge branch 'one_type_type2' 2021-06-25 01:20:38 +02:00
Andrzej Janik
2e8716bf0d Clean up warnings 2021-06-25 01:20:16 +02:00
Andrzej Janik
9a568e2969 Update tests 2021-06-25 01:08:45 +02:00
Andrzej Janik
e018de83ae Prepare level zero and our compiler for global addressing 2021-06-20 12:13:40 +02:00
Andrzej Janik
951c7558cc Fix problems with non-dereferencing inline addition 2021-06-12 16:17:32 +02:00