Page MenuHomePhabricator

[Clang][OpenMP] Allow unified_shared_memory for Pascal-generation GPUs.
ClosedPublic

Authored by Meinersbur on Apr 29 2021, 9:32 PM.

Details

Summary

The Pascal architecture supports the page migration engine required for unified_shared_memory, as indicated by NVIDIA:

The limitation was introduced in D54493 which justified the cut-off by the requirement for unified addressing. However, Unified Virtual Addressing (UVA) is already available with sm20 (Fermi. Kepler, Maxwell). Unified shared memory might even be possible with these, but with migration of entire allocations on kernel startup.

To be sure, I enabled the tests for a Pascal GPU which finish successfully.

Diff Detail

Unit TestsFailed

TimeTest
240 msx64 debian > Clang.OpenMP::requires_codegen.cpp
Script: -- : 'RUN: at line 1'; /mnt/disks/ssd0/agent/llvm-project/build/bin/clang -cc1 -internal-isystem /mnt/disks/ssd0/agent/llvm-project/build/lib/clang/13.0.0/include -nostdsysteminc -verify -fopenmp -x c++ -triple powerpc64le-unknown-unknown -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm-bc /mnt/disks/ssd0/agent/llvm-project/clang/test/OpenMP/requires_codegen.cpp -o /mnt/disks/ssd0/agent/llvm-project/build/tools/clang/test/OpenMP/Output/requires_codegen.cpp.tmp-ppc-host.bc -DREGION_HOST
720 msx64 windows > Clang.OpenMP::requires_codegen.cpp
Script: -- : 'RUN: at line 1'; c:\ws\w32-1\llvm-project\premerge-checks\build\bin\clang.exe -cc1 -internal-isystem c:\ws\w32-1\llvm-project\premerge-checks\build\lib\clang\13.0.0\include -nostdsysteminc -verify -fopenmp -x c++ -triple powerpc64le-unknown-unknown -fopenmp-targets=nvptx64-nvidia-cuda -emit-llvm-bc C:\ws\w32-1\llvm-project\premerge-checks\clang\test\OpenMP\requires_codegen.cpp -o C:\ws\w32-1\llvm-project\premerge-checks\build\tools\clang\test\OpenMP\Output\requires_codegen.cpp.tmp-ppc-host.bc -DREGION_HOST

Event Timeline

Meinersbur created this revision.Apr 29 2021, 9:32 PM
Meinersbur requested review of this revision.Apr 29 2021, 9:32 PM
JonChesterfield accepted this revision.Apr 30 2021, 12:43 AM

Nice. Thanks for including the references.

This revision is now accepted and ready to land.Apr 30 2021, 12:43 AM
Meinersbur planned changes to this revision.Apr 30 2021, 11:58 AM

Will fix the failed required_codegen.cpp test.

Meinersbur updated this revision to Diff 342190.May 1 2021, 7:52 PM
Meinersbur edited the summary of this revision. (Show Details)
  • Fix test case

Will wait for D101498 is resolved, otherwise I cannot test this anymore.

This revision is now accepted and ready to land.May 1 2021, 7:52 PM