Skip to content

[CUDA] Add support for the generic address space #5215

Closed
@ghost

Description

The SYCL 2020 specification requires that the sycl::atomic_ref class template uses the sycl::access::address_space::generic_space enumeration as the default value for the AddressSpace template parameter. The enumeration and its support have been added to the project recently.

On CUDA, attempts of instantiate sycl::atomic_ref with the generic address space lead to linker errors. When the end-to-end tests for sycl::atomic_ref from https://github.com/intel/llvm-test-suite/tree/intel/SYCL/AtomicRef with generic address space (all the tests with suffix _generic.cpp) are compiled with CUDA support, the following linker errors occur:

ptxas fatal   : Unresolved extern function '_Z19__spirv_AtomicStorePiN5__spv5Scope4FlagENS0_19MemorySemanticsMask4FlagEi'
llvm-foreach: 
clang-14: error: ptxas command failed with exit code 255 (use -v to see invocation)
...

ptxas fatal   : Unresolved extern function '_Z19__spirv_AtomicStorePmN5__spv5Scope4FlagENS0_19MemorySemanticsMask4FlagEm'
llvm-foreach: 
clang-14: error: ptxas command failed with exit code 255 (use -v to see invocation)
...

ptxas fatal   : Unresolved extern function '_Z18__spirv_AtomicLoadPKjN5__spv5Scope4FlagENS1_19MemorySemanticsMask4FlagE'
llvm-foreach: 
clang-14: error: ptxas command failed with exit code 255 (use -v to see invocation)
...

ptxas fatal   : Unresolved extern function '_Z18__spirv_AtomicLoadPKmN5__spv5Scope4FlagENS1_19MemorySemanticsMask4FlagE'
llvm-foreach: 
clang-14: error: ptxas command failed with exit code 255 (use -v to see invocation)
...

ptxas fatal   : Unresolved extern function '_Z18__spirv_AtomicLoadPKiN5__spv5Scope4FlagENS1_19MemorySemanticsMask4FlagE'
llvm-foreach: 
clang-14: error: ptxas command failed with exit code 255 (use -v to see invocation)
...

ptxas fatal   : Unresolved extern function '_Z29__spirv_AtomicCompareExchangePiN5__spv5Scope4FlagENS0_19MemorySemanticsMask4FlagES4_ii'
llvm-foreach: 
clang-14: error: ptxas command failed with exit code 255 (use -v to see invocation)
...

ptxas fatal   : Unresolved extern function '_Z29__spirv_AtomicCompareExchangePmN5__spv5Scope4FlagENS0_19MemorySemanticsMask4FlagES4_mm'
llvm-foreach: 
clang-14: error: ptxas command failed with exit code 255 (use -v to see invocation)
...

ptxas fatal   : Unresolved extern function '_Z22__spirv_AtomicExchangePiN5__spv5Scope4FlagENS0_19MemorySemanticsMask4FlagEi'
llvm-foreach: 
clang-14: error: ptxas command failed with exit code 255 (use -v to see invocation)
...

ptxas fatal   : Unresolved extern function '_Z22__spirv_AtomicExchangePmN5__spv5Scope4FlagENS0_19MemorySemanticsMask4FlagEm'
llvm-foreach: 
clang-14: error: ptxas command failed with exit code 255 (use -v to see invocation)
...

ptxas fatal   : Unresolved extern function '_Z18__spirv_AtomicSMaxPiN5__spv5Scope4FlagENS0_19MemorySemanticsMask4FlagEi'
llvm-foreach: 
clang-14: error: ptxas command failed with exit code 255 (use -v to see invocation)
...

ptxas fatal   : Unresolved extern function '_Z18__spirv_AtomicSMinPiN5__spv5Scope4FlagENS0_19MemorySemanticsMask4FlagEi'
llvm-foreach: 
clang-14: error: ptxas command failed with exit code 255 (use -v to see invocation)

It looks like the libclc library doesn't provide the required functions. The functions should be available for the linker.

Metadata

Metadata

Assignees

Labels

compilerCompiler related issuecudaCUDA back-endenhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions