Andrzej Janik
d704e92c97
Support instruction modes (denormal and rounding) on AMD GPUs ( #342 )
2025-03-17 21:37:26 +01:00
Joëlle van Essen
867e4728d5
LLVM unit tests ( #324 )
...
* LLVM unit tests: add assembly files
* LLVM unit tests: first attempt
* LLVM unit tests: fix - parse bitcode in context
* LLVM unit tests: use pretty_assertions for line-by-line diff
* LLVM unit tests: Write IR to file for failed test
* LLVM unit tests: just use the stack
* LLVM unit tests: use MaybeUninit
* LLVM unit tests: add mul24.ll
* LLVM unit tests: Adjustments after review
* LLVM unit tests: Include emit_llvm::Context in emit_llvm::Module
* LLVM unit tests: Fix typo
* LLVM unit tests: Context need not be pub
2025-02-19 21:21:20 +01:00
Andrzej Janik
646d746e02
Start working on mul24
2025-02-07 19:37:11 +00:00
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 )
...
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 )
...
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