jhuber6 added a comment.

In D140226#4003826 <https://reviews.llvm.org/D140226#4003826>, @tschuett wrote:

> But then you are maybe mixing two concepts. `kernel` is source code or AST 
> feature. nvptx or AMDGPU are command line flags.
>
> CUDA, Sycl, nvtx, and AMDGPU are modes or calling conventions?

The way I understand it, the architecture determines the actual ISA for the 
code and the `kernel` metadata operates like a calling convention for whatever 
"OS" will be executing it. For example, for the triple `amdgcn-amd-amdhsa` we 
generate code for the `amdgcn` architecture and emit kernels such that the 
`hsa` runtime can call them. Similarly, for `nvptx64-nvidia-cuda` we emit code 
for `nvptx64` and our kernels use the calling convention such that the `cuda` 
runtime can call them. I think the main question of this patch is if we can 
separate the `cuda` runtime from the CUDA language. That is, we don't need to 
be using the CUDA language to emit functions that the `cuda` runtime can call. 
So this is more or less thinking of these kernel calls as a calling convention 
for a runtime or operating system rather than as a language feature.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140226/new/

https://reviews.llvm.org/D140226

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to