저는 GPU 프로그래밍을 처음 접했습니다. 나는 기본적인 개념을 설명하는 자료를 읽었다.CUDA/OpenCL을 사용하여 특정 ALU에 명령/알고리즘을 할당합니까?
그러나 특정 ALU에 일련의 명령어 또는 전체 알고리즘/바이너리를 할당 할 수 있는지 알고 싶습니다. 이러한 명령어가이 ALU에서만 실행되었다는 것을 확신 할 수 있습니다 (따라서 바이 패스 병렬 처리를 자동으로 처리하는 시스템)?
나는 그들 사이의 잠재적 인 컴퓨팅 대기 시간과 관련하여 GPU의 개별 ALU를 "벤치마킹"해야합니다. 따라서, (특정) ALU 세트를 여러 개의 특정 ALU에 할당하고이 명령어 세트를 실행하는 데 필요한 시간을 측정하여 차이가있을 경우 결과를 비교하려고합니다.
일반적으로 경쟁 조건의 특정 출처에 대한 GPU를 확인하고 싶습니다. 처음 생각한 것은 다른 ALU의 실행 속도가 아주 작은 차이라고 생각했습니다. 어쩌면 당신은 경쟁 조건의 다른 잠재적 인 출처에 대해 알고있을 것입니다.
그러나 내 목표는 GPU (parllelization, 등)의 일반적인 사용과는 정반대이기 때문에 일반적인 도구로 하위 수준의 ALU에 어떻게 접근 할 수 있는지 알기가 어렵습니다.
안부,
GPU는 본인이 아는 한에서, 사용자가 액세스 할 수없는 개인 워프 스케줄러를 가지고 : NVTX를 사용에 관한
, 여기에 내 질문에 봐. 예를 들어 Fermi 아키텍처의 경우 장치에는 작업을 다른 스트리밍 멀티 프로세서에 전달하는 Giga-Thread Scheduler와 개별 코어에 워프를 전달하는 이중 워프 스케줄러가 있습니다. 그러나 이것은 사용자에게 투명합니다. 개별 지침 또는 일련의 지침을 프로파일 링하기 위해 수행 할 수있는 작업은 NVTX 추적 라이브러리를 사용하는 것입니다.이 라이브러리는 Parallel Nsight 추적에서 프로파일의 일부분을 주석 처리하는 데 도움이됩니다. – JackOLantern