cms-patatrack / pixeltrack-standalone

Standalone Patatrack pixel tracking
Apache License 2.0
17 stars 35 forks source link

[stdpar] NVHPC support #367

Closed esseivaju closed 2 years ago

esseivaju commented 2 years ago

Update the std::par program to build with the nvc++ compiler. Tested on zeus with

Changelist

Notes

esseivaju commented 2 years ago

@makortel All the current comments have been resolved, however, as mentioned in the original comment, running the stdpar application still results in runtime memory access error:

/bld4/home/esseivaj/devel/pixeltrack-standalone/src/stdpar/CUDACore/allocate_managed.cc, line 32:
cudaCheck(cudaFree(ptr));
cudaErrorIllegalAddress: an illegal memory access was encountered

Replacing the cudaMalloc* with heap allocation and letting nvc++ fixes the issue, however, you'll then get similar errors when destroying cudaStream_t / cudaEvent_t which require more important changes in how the framework processes events. Should we already merge this pull request and fix the issue in a subsequent one or do you want to keep it open until runtime issues are fixed?

makortel commented 2 years ago

Should we already merge this pull request and fix the issue in a subsequent one or do you want to keep it open until runtime issues are fixed?

Yes, at this point the developments are more useful as merged than as an open PR. I only added one change in the Makefile to keep make all function also when NVHPC toolchain is not present.