[clang] [openmp] [Clang][OpenMP] Fix mapping of structs to device (PR #75642)

Gheorghe-Teodor Bercea via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 19 09:01:14 PST 2023


doru1004 wrote:

> The newly added test `offloading/struct_mapping_with_pointers.cpp` fails on NVIDIA GPUs as well.
> 
> ```
> ******************** TEST 'libomptarget :: nvptx64-nvidia-cuda :: offloading/struct_mapping_with_pointers.cpp' FAILED ********************
> Exit Code: 1
> 
> Command Output (stdout):
> --
> # RUN: at line 2
> /gpfs/jlse-fs0/users/ac.shilei.tian/build/llvm/release/bin/clang++ -fopenmp -pthread   -I /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test -I /gpfs/jlse
> -fs0/users/ac.shilei.tian/build/openmp/release/runtime/src -L /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget -L /gpfs/jlse-fs0/users/ac.shilei.tian/build/ll
> vm/release/./lib -L /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/runtime/src  -Wl,-rpath,/gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget -Wl,-rpa
> th,/gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/runtime/src -Wl,-rpath,/gpfs/jlse-fs0/users/ac.shilei.tian/build/llvm/release/./lib -Wl,-rpath,/soft/compilers/cuda/cud
> a-11.8.0/targets/x86_64-linux/lib --libomptarget-nvptx-bc-path=/gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget/DeviceRTL -fopenmp-targets=nvptx64-nvidia-cuda
>  /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test/offloading/struct_mapping_with_pointers.cpp -o /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/releas
> e/libomptarget/test/nvptx64-nvidia-cuda/offloading/Output/struct_mapping_with_pointers.cpp.tmp /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget/libomptarget.d
> evicertl.a && env LIBOMPTARGET_DEBUG=1 /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget/test/nvptx64-nvidia-cuda/offloading/Output/struct_mapping_with_pointer
> s.cpp.tmp 2>&1 | /gpfs/jlse-fs0/users/ac.shilei.tian/build/llvm/release/bin/FileCheck /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test/offloading/struct
> _mapping_with_pointers.cpp
> # executed command: /gpfs/jlse-fs0/users/ac.shilei.tian/build/llvm/release/bin/clang++ -fopenmp -pthread -I /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/
> test -I /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/runtime/src -L /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget -L /gpfs/jlse-fs0/users/ac.sh
> ilei.tian/build/llvm/release/./lib -L /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/runtime/src -Wl,-rpath,/gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libo
> mptarget -Wl,-rpath,/gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/runtime/src -Wl,-rpath,/gpfs/jlse-fs0/users/ac.shilei.tian/build/llvm/release/./lib -Wl,-rpath,/soft/c
> ompilers/cuda/cuda-11.8.0/targets/x86_64-linux/lib --libomptarget-nvptx-bc-path=/gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget/DeviceRTL -fopenmp-targets=nv
> ptx64-nvidia-cuda /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test/offloading/struct_mapping_with_pointers.cpp -o /gpfs/jlse-fs0/users/ac.shilei.tian/bu
> ild/openmp/release/libomptarget/test/nvptx64-nvidia-cuda/offloading/Output/struct_mapping_with_pointers.cpp.tmp /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarg
> et/libomptarget.devicertl.a
> # executed command: env LIBOMPTARGET_DEBUG=1 /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget/test/nvptx64-nvidia-cuda/offloading/Output/struct_mapping_with_p
> ointers.cpp.tmp
> # executed command: /gpfs/jlse-fs0/users/ac.shilei.tian/build/llvm/release/bin/FileCheck /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test/offloading/str
> uct_mapping_with_pointers.cpp
> # .---command stderr------------
> # | /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test/offloading/struct_mapping_with_pointers.cpp:106:12: error: CHECK: expected string not found in inpu
> t
> # |  // CHECK: dat.datum[dat.arr[0][0]] = 0
> # |            ^
> # | <stdin>:124:24: note: scanning from here
> # | dat.val_more_datum = 18
> # |                        ^
> # | <stdin>:125:1: note: possible intended match here
> # | dat.datum[dat.arr[0][0]] = 32542
> # | ^
> # |
> # | Input file: <stdin>
> # | Check file: /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test/offloading/struct_mapping_with_pointers.cpp
> # |
> # | -dump-input=help explains the following input dump.
> # |
> # | Input was:
> # | <<<<<<
> # |              .
> # |              .
> # |              .
> # |            119: omptarget --> Done unregistering library!
> # |            120: omptarget --> Deinit offload library!
> # |            121: TARGET CUDA RTL --> Missing 2 resources to be returned
> # |            122: dat.xi = 4
> # |            123: dat.val_datum = 8
> # |            124: dat.val_more_datum = 18
> # | check:106'0                            X error: no match found
> # |            125: dat.datum[dat.arr[0][0]] = 32542
> # | check:106'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> # | check:106'1     ?                                 possible intended match
> # |            126: dat.val_arr = 4
> # | check:106'0     ~~~~~~~~~~~~~~~~
> # | >>>>>>
> # `-----------------------------
> # error: command failed with exit status: 1
> 
> --
> 
> ********************
> ```

I disabled this test for NVIDIA for now: https://github.com/llvm/llvm-project/pull/75949

https://github.com/llvm/llvm-project/pull/75642


More information about the cfe-commits mailing list