Commit aea98ad
Update the data layout.
Recent NVVM IR docs (e.g.
https://docs.nvidia.com/cuda/archive/13.0.0/nvvm-ir-spec/index.html#data-layout)
mention four data layouts, which I will abbreviate as:
- 64-bit-with-128-bit-integers
- 32-bit-with-128-bit-integers
- 64-bit-without-128-bit-integers
- 32-bit-without-128-bit-integers
These docs have said the same thing for every CUDA version from 12.0 to 13.0:
- 64-bit-with-128-bit-integers is "supported".
- The others are "deprecated and will be removed in a future release".
We currently use 64-bit-without-128-bit integers. This works fine on
CUDA 12.8, but doesn't work on CUDA 13.0 -- libNVVM spits out
"DataLayoutError: Unsupported integer alignment". Even though the docs
haven't changed, 13.0 seems to be the first version actually enforcing
the deprecation. (Or maybe "deprecated" has become "removed" and the
docs haven't caught up, given that there's no apparent way to avoid the
error.)
This commit changes our data layout from 64-bit-without-128-bit-integers
to 64-bit-with-128-bit-integers. This lets commands like `cargo run -p
compiletests -- --target-arch compute_75` run successfully on my ASUS
GX10 with CUDA 13.0. There appear to be no ill side-effects.1 parent 1eca961 commit aea98ad
File tree
3 files changed
+4
-2
lines changed- crates/rustc_codegen_nvvm
- src
3 files changed
+4
-2
lines changedBinary file not shown.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
0 commit comments