OpenCL.Net에 대한 확실하지,하지만 일반 오픈 CL의 : 예, clenquewritebuffer
충분히 (단지 CL_MEM_READ_ONLY
플래그가 설정되어 버퍼를 생성하는 기억)입니다. 동일하고, 최적화의 동일한 유형을 제공하는 CUDA와 OpenCL을에서
c_Table[i] = clCreateBuffer(cxGPUContext, CL_MEM_READ_ONLY, QRNG_DIMENSIONS * QRNG_RESOLUTION * sizeof(unsigned int),
NULL, &ciErr);
ciErr |= clEnqueueWriteBuffer(cqCommandQueue[i], c_Table[i], CL_TRUE, 0,
QRNG_DIMENSIONS * QRNG_RESOLUTION * sizeof(unsigned int), tableCPU, 0, NULL, NULL);
상수 메모리 : 여기
는
Nvidia GPU Computing SDK (OpenCL을/SRC/oclQuasirandomGenerator/oclQuasirandomGenerator.cpp)에서 데모입니다. 즉, nVidia GPU를 사용하는 경우입니다. ATI GPU에서는 유사하게 동작해야합니다. 그리고 저는 일정한 메모리가 CPU에서 실행될 때 전역 적으로 이점을 줄 것이라고 생각합니다.
CPU가 로컬 및 상수 현금 (CPU에는 없음)을 어떻게 처리합니까? – gpuguy
@gpuguy OpenCL 메모리 개념과 기본 하드웨어 아키텍처의 실제 관계는 명시 적으로 지정되지 않았습니다. AFAIK. 나는 그들이 보통 RAM의 일부일 뿐이며 RAM에 대한 다른 액세스 (글로벌, 텍스처 등)와 같은 방식으로 캐시된다고 생각한다. – aland