Tracking Issue for the gpu-kernel
ABI
#135467
Labels
A-ABI
Area: Concerning the application binary interface (ABI)
A-LLVM
Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.
C-tracking-issue
Category: An issue tracking the progress of sth. like the implementation of an RFC
O-amdgpu
AMDGPU targets
O-NVPTX
Target: the NVPTX LLVM backend for running rust on GPUs, https://llvm.org/docs/NVPTXUsage.html
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
T-lang
Relevant to the language team, which will review and decide on the PR/issue.
The feature gate for the issue is
#![feature(abi_gpu_kernel)]
.The
extern "gpu-kernel"
calling convention represents the entry points exposed to the host, which are then called to actually execute the GPU kernel. Functions built for a GPU target are instead "device functions". Device functions must not call these host functions (and LLVM will emit a compilation error if it is attempted for some targets).It is implemented for the following targets
ptx_kernel
calling convention in LLVM)amdgpu_kernel
calling convention in LLVM)About tracking issues
Tracking issues are used to record the overall progress of implementation.
They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature.
Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.
Discussion comments will get marked as off-topic or deleted.
Repeated discussions on the tracking issue may lead to the tracking issue getting locked.
Steps
Unresolved Questions
ptx_kernel
)extern "device-kernel"
instead?unsafe
to call? If so, making them uncallable from device code may be redundant (but "myunsafe
generated an LLVM error" would be kinda unsettling, even if we define it as UB)Implementation history
extern "gpu-kernel"
functions when compiling for GPU targets()
or!
The text was updated successfully, but these errors were encountered: