각 GPU 장치 (AMD, NVidea 또는 기타)는 고정 된 수의 코어 (VertexShaders/StreamProcessors)가있는 여러 Compute Units (MultiProcessors)로 분할됩니다. 따라서 하나의 프로세서에는 (Compute Units) x (VertexShaders/compute unit)
개의 동시 프로세서가 있지만 다중 프로세서 당 사용할 수있는 고정 된 양의 작은 고정 된 양의 __local
메모리 (대개 16KB 또는 32KB)가 있습니다. 따라서 이러한 다중 프로세서의 정확한 수는 중요합니다. 이제OpenCL 로컬 메모리 크기 및 계산 단위 수
내 질문 :
- (A) 나는 장치에서 멀티 프로세서의 수를 알 수 있습니까? 이것은
CL_DEVICE_MAX_COMPUTE_UNITS
과 같습니까? http://en.wikipedia.org/wiki/Comparison_of_AMD_graphics_processing_units과 같은 사양 시트에서 추론 할 수 있습니까? - (b) GP를 구입하기 전에 GP 당 사용 가능한 메모리 양을 확인하려면 어떻게해야합니까? 물론 그것을 실행하는 컴퓨터에서
CL_DEVICE_LOCAL_MEM_SIZE
을 요청할 수는 있지만, http://www.amd.com/us/products/desktop/graphics/7000/7970/Pages/radeon-7970.aspx#3과 같은 개별적인 세부 사양 시트에서도 어떻게 추론 할 수 있는지 알 수 없습니까? - (c) 현재 가장 큰 카드는
CL_DEVICE_LOCAL_MEM_SIZE
입니까? 가격은 중요하지 않지만 64KB (또는 그 이상)는 내 알고리즘이 완전히 병렬화 될 수 있기 때문에 필자가 작성한 애플리케이션에 명확한 이점을 제공하지만 각 MP 내에서 임의의 액세스 패턴으로 높은 메모리 집약도 (에지를 반복 그래프의).
SDK의 AMD/NVIDIA가 제공 한 샘플에서 장치 쿼리를 실행 해보십시오. 특정 장치의 장치 쿼리를 알고 싶다면 누가 온라인에 연결했는지 많은 사람들이 있습니다. – nouveau