특정 CPU에서 커널을 실행하는 OpenCL 개념 증명 응용 프로그램을 작성하려고합니다. 따라서 앞으로 NUMA를 인식하도록 확장하고 in the Intel Dev forums과 같이 해당 NUMA 노드에서 커널 실행).OpenCL 하위 장치 선호도가 스케줄러에서 준수하지 않음
불행하게도 Windows 스케줄러는 내 커널을 사용 가능한 모든 CPU 코어 (즉, 로컬 메모리에서 멀리 떨어져 있음)를 통해 순환하는 것처럼 보이기 때문에 내가 원하는 것을 신경 쓰지 않습니다.
지금은 CL_DEVICE_PARTITION_BY_COUNTS
속성을 사용하여 하나의 실행 단위로 하나의 하위 장치를 만들고이 하위 장치에서 커널을 실행하고 있습니다. 그럼에도 불구하고 Windows의 CPU 사용량을 살펴보면 단일 코어가 사용량이 많지는 않지만 여러 코어가 작업 부하가 급증합니다 (단, 작업 관리자를 사용하여 프로세스를 하나의 코어에 수동으로 고정시키지 않으면 결과가 나타남) 나는 모두 함께) 기대했다. 내가 사용
cl_device_partition_property props[4];
props[0] = CL_DEVICE_PARTITION_BY_COUNTS;
props[1] = 1;
props[2] = CL_DEVICE_PARTITION_BY_COUNTS_LIST_END;
props[3] = 0;
을 : 여기
내가 (필자는 subdevice의 실행 유닛의 수를 조회하는 경우 올바르게 "1"나를 제공)을 subdevice을 만드는 데 사용되는 속성의 전체 정의입니다 두 개의 Intel Xeon 프로세서 (Intel OpenCL 구현으로 24 개의 실행 단위가있는 하나의 실행 장치로 인식되는 방법)와CL_DEVICE_PARTITION_BY_NAMES_INTEL
도 사용하려고 시도했지만 어느 것도 작동하지 않았습니다.
내가 뭘 잘못하고 있니?
도움 주셔서 감사합니다.
예, 사용하고 있습니다. 안타깝게도 Intel OpenCL SDK 나 AMD OpenCL SDK (/ drivers)는 현재 선호도 도메인을 지원하지 않습니다. – dorbeetle