-
Notifications
You must be signed in to change notification settings - Fork 15.7k
[libclc] Update default triple support for AMD and deprecate 32-bit PTX #174415
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
For the libclc developers, what's the expected way to get the spirv / clsprv targets to work? They always result in this failure for me. |
|
You can't use tools build against old llvm for new bitcode |
|
There are two ways to build libclc spirv targets:
|
|
update comment
to nvptx64--? |
Summary: The standard `nvptx` target is not supported and has been completely removed following the CUDA 12 release. It should be safe to drop support for it in the default build. Additionally we add the `amd` vendor to the amdgcn triple as this is the more canonical form and builds the same IR.
Done, somewhat related, why is this a restriction on NVPTX? We should have access to the same block / thread indexing that AMDGCN has. I need to figure out how to get SPIRV working with my |
|
For your downstream use, I already fixed the COV flag and #174454 should fix the |
the comment might be outdated.
no objection from me. Do you mean using gpuintrin.h in libclc implementation? |
wenju-he
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Yep, they're supposed to be generic wrappers around a lot of common GPU intrinsics, similar to what OpenCL would provide but done through a header. Like |
thanks, it LGTM that common code is unified at a place. |
thanks.
Incompatible target-features still have the issue as mentioned in the comment https://github.com/intel/llvm/blob/4decbf0da29f7daba8a87361456a264a331e2b5d/libclc/utils/prepare-builtins.cpp#L129-L146, but I think it is our downstream issue. We probably need to build multiple libspirv libraries and use compatible libspirv library for the target that user code is compiled for.
As I know, only amdgpu has ISA specific handling using different targets at llvm-project/libclc/CMakeLists.txt Lines 205 to 208 in f54dd47
|
…TX (llvm#174415) Summary: The standard `nvptx` target is not supported and has been completely removed following the CUDA 12 release. It should be safe to drop support for it in the default build. Additionally we add the `amd` vendor to the amdgcn triple as this is the more canonical form and builds the same IR.
Summary:
The standard
nvptxtarget is not supported and has been completelyremoved following the CUDA 12 release. It should be safe to drop support
for it in the default build. Additionally we add the
amdvendor to theamdgcn triple as this is the more canonical form and builds the same IR.