1
하나의 OpenCL 플랫폼에서 액세스 할 수 있도록 동일한 GPU가 있지만 동일한 공급 업체의 시스템을 사용한다고 가정합니다. 다음 단순화 오픈 CL 코드를 감안할 때 : 실행의 끝에서읽기/쓰기 단일 컨텍스트에서 여러 GPU의 OpenCL 메모리 버퍼
float* someRawData;
cl_device_id gpu1 = clGetDeviceIDs(0,...);
cl_device_id gpu2 = clGetDeviceIDs(1,...);
cl_context ctx = clCreateContext(gpu1,gpu2,...);
cl_command_queue queue1 = clCreateCommandQueue(ctx,gpu1,...);
cl_command_queue queue2 = clCreateCommandQueue(ctx,gpu2,...);
cl_mem gpuMem = clCreateBuffer(ctx, CL_MEM_READ_WRITE, ...);
clEnqueueWriteBuffer(queue1,gpuMem,...,someRawData,...);
clFinish(queue1);
을 someRawData
메모리 모두 GPU에있을 것입니다 또는 그것은 단지 메모리 gpu1
에있을 것입니다?
호스트 데이터가 gpu1에만 복사 될 것이라고 확신합니다 ... 공간이 두 장치 모두에 할당되는지 확실하지 않습니다. 사양은 여기에별로 도움이되지 않습니다. 나는 두 개의 GPU가 작동하는 시스템을 가지고있다 - 나는 시간이 있다면 내일 촬영할 것이다. –