[PATCH] D42922: [CUDA] Register relocatable GPU binaries
Artem Belevich via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Feb 16 10:32:51 PST 2018
tra added inline comments.
================
Comment at: lib/CodeGen/CGCUDANV.cpp:330-331
// the GPU side.
for (const std::string &GpuBinaryFileName :
CGM.getCodeGenOpts().CudaGpuBinaryFileNames) {
llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> GpuBinaryOrErr =
----------------
Hahnfeld wrote:
> tra wrote:
> > Hahnfeld wrote:
> > > Can we actually have multiple GPU binaries here? If yes, how do I get there?
> > Yes. `clang --cuda-gpu-arch=sm_35 --cuda-gpu-arch=sm_50...` will compile for sm_35 and sm_50 and then will pass the names of GPU-side objects to the host compilation via `-fcuda-include-gpubinary`.
> I'm not sure if that's true anymore: I think they are now combined by `fatbinary`. This seems to be confirmed by `test/Driver/cuda-options.cu`. If that was the only use case, we may try to get rid of this possibility, let me check this.
You are correct. All GPU binaries are in the single fatbin now.
That said, you could still pass extra -fcuda-include-gpubinary to cc1 manually, but I see no practical reason to do it -- single fatbin serves the purpose better.
We should remove this loop and make CGM.getCodeGenOpts().CudaGpuBinaryFileNames a scalar.
https://reviews.llvm.org/D42922
More information about the cfe-commits
mailing list