From: Noah R. <noa...@gm...> - 2023-01-11 21:58:47
|
Hi All, I'm trying to find a working method, or short-term hack of a working method, to adapt my OpenCL application to run well on contemporary HPC systems with NVIDIA GPUs. (i.e. Perlmutter at NERSC) For this, I want or need to use GPU-side device pointers in the Message Passing Interface (MPI) arguments for communication between nodes on the supercomputer. As far as I can tell, OpenCL provides no mechanism to obtain the device-side memory pointer for either a cl_mem buffer object or SVM allocation. I would need this pointer to use with MPI calls. In CUDA-based prototype codes, this type of MPI use to/from GPU memory is straightforward because cudaMaloc() returns a device pointer that is accepted in MPI_xyz() calls. Has anyone tried something like this with POCL using the CUDA backend? Or is there familiarity with the implementation that would suggest how to get at this device pointer from a cl_mem object ? Cheers, -Noah |