Browse Source

Merge branch 'shawnz_bugs_fix' into 'master'

Bug 5207005: Append pid in shmName for Linux only as this is for MIG scenario

See merge request cuda-samples/cuda-samples!100
pull/53/merge
Rob Armstrong 3 months ago
parent
commit
3b9c8ce2e9
  1. 10
      Samples/0_Introduction/simpleIPC/simpleIPC.cu
  2. 16
      Samples/3_CUDA_Features/memMapIPCDrv/memMapIpc.cpp

10
Samples/0_Introduction/simpleIPC/simpleIPC.cu

@ -99,12 +99,15 @@ static void childProcess(int id) @@ -99,12 +99,15 @@ static void childProcess(int id)
std::vector<void *> ptrs;
std::vector<cudaEvent_t> events;
std::vector<char> verification_buffer(DATA_SIZE);
pid_t pid;
char pidString[20] = {0};
char lshmName[40] = {0};
// Use parent process ID to create a unique shared memory name for Linux multi-process
#ifdef __linux__
pid_t pid;
pid = getppid();
snprintf(pidString, sizeof(pidString), "%d", pid);
#endif
strcat(lshmName, shmName);
strcat(lshmName, pidString);
@ -205,12 +208,15 @@ static void parentProcess(char *app) @@ -205,12 +208,15 @@ static void parentProcess(char *app)
std::vector<void *> ptrs;
std::vector<cudaEvent_t> events;
std::vector<Process> processes;
pid_t pid;
char pidString[20] = {0};
char lshmName[40] = {0};
// Use current process ID to create a unique shared memory name for Linux multi-process
#ifdef __linux__
pid_t pid;
pid = getpid();
snprintf(pidString, sizeof(pidString), "%d", pid);
#endif
strcat(lshmName, shmName);
strcat(lshmName, pidString);

16
Samples/3_CUDA_Features/memMapIPCDrv/memMapIpc.cpp

@ -310,12 +310,16 @@ static void childProcess(int devId, int id, char **argv) @@ -310,12 +310,16 @@ static void childProcess(int devId, int id, char **argv)
ipcHandle *ipcChildHandle = NULL;
int blocks = 0;
int threads = 128;
pid_t pid;
char pidString[20] = {0};
char lshmName[40] = {0};
char pidString[20] = {0};
char lshmName[40] = {0};
// Use parent process ID to create a unique shared memory name for Linux multi-process
#ifdef __linux__
pid_t pid;
pid = getppid();
snprintf(pidString, sizeof(pidString), "%d", pid);
#endif
strcat(lshmName, shmName);
strcat(lshmName, pidString);
@ -431,16 +435,20 @@ static void parentProcess(char *app) @@ -431,16 +435,20 @@ static void parentProcess(char *app)
volatile shmStruct *shm = NULL;
sharedMemoryInfo info;
std::vector<Process> processes;
pid_t pid;
char pidString[20] = {0};
char lshmName[40] = {0};
// Use current process ID to create a unique shared memory name for Linux multi-process
#ifdef __linux__
pid_t pid;
pid = getpid();
snprintf(pidString, sizeof(pidString), "%d", pid);
#endif
strcat(lshmName, shmName);
strcat(lshmName, pidString);
printf("PP: lshmName = %s\n", lshmName);
checkCudaErrors(cuDeviceGetCount(&devCount));
std::vector<CUdevice> devices(devCount);

Loading…
Cancel
Save