2016-09-14 3 views
4

나는 워프가 CUDA에서만 정의된다는 것을 확신합니다. 하지만 어쩌면 내가 틀렸어. OpenCL의 관점에서 워프 란 무엇입니까?OpenCL의 컨텍스트에서 워프 란 무엇입니까?

그것은 작업 그룹과 같지 않습니까? 관련 의견을 보내 주시면 감사하겠습니다. 감사!

+0

많은 OpenCL을 사용하지 않았지만 그 용어에 대해 들어 본 적이 없습니다. – nbro

+0

엔비디아의 워프는 amd의 파면과 비슷합니다. 예를 들어 새로운 amd gpu의 각 계산 단위에는 64 코어가 있지만 256 와이드 그룹을 지정하면 256 스레드 작업 그룹을 완료하는 데 4 개의 앞면이 필요합니다. 커널이 사용하는 메모리가 매우 적 으면 amd 컴퓨팅 장치에서 40 파의 앞면을 낼 수 있습니다. 단위를 계산하기 위해 4 개의 파면을 발행하려면 4 클럭이 필요합니다. 그러나 끝내기까지 더 오래 걸릴 수 있습니다. –

+1

OpenCL에서 정의한 "워프"와 같은 것이 없습니다. 그러나 OpenCL 2.x에서는 * 하위 그룹 *이 도입되었으며 NVIDIA가 "워프 (warp)"라고 부르는 목적과 동일합니다. –

답변

6

OpenCL 표준에는 정의되어 있지 않습니다. 워프는 하드웨어에 의해 실행되는 쓰레드입니다 (CUDA 쓰레드는 실제로 쓰레드가 아니며 하드웨어와 소프트웨어 매핑을 통해 별도의 SIMD 요소로 워프에 매핑됩니다). 작업 항목 모음이며 작업 그룹에 여러 개의 워프가있을 수 있습니다.

OpenCL 하위 그룹은 하드웨어 스레드와 호환되도록 설계되었으므로 OpenCL 커널에서 워프를 나타낼 수 있지만 하위 그룹을 구현할지 여부를 결정하는 것은 전적으로 NVIDIA뿐입니다. 물론 OpenCL 하위 그룹 NVIDIA는 표준이기 때문에 NVIDIA가 폭기에 대해 폭로 할 수있는 모든 기능을 공개 할 수 없지만 NVIDIA는 자체 장치에서 원하는 모든 것을 할 수 있습니다.

+0

아마도 하드웨어 스레드를 읽어야합니까? 필자는 운영 체제의 맥락에서 소프트웨어 스레드에 대해서만 잘 알고 있습니다. CUDA 쓰레드 (컨텍스트 : 블록 당 다중 쓰레드)는 하드웨어 쓰레드, 소프트웨어 쓰레드 또는 쓰레드에 대한 자체 아이디어를 말하는가? –

+0

워프는 하드웨어 스레드입니다. CUDA 스레드는 하드웨어 스레드가 아닙니다. 워프는 작업 항목 모음입니다. 작업 그룹은 (1) 작업 항목 모음 또는 (2) 워프 컬렉션으로 정의 할 수 있습니다. 이 올바른지? 그렇다면 작업 항목의 계층 구조가 있다고 말하는 것이 안전할까요? 작업 그룹은 워프 모음입니다. 작업 항목 모음입니다. 이 올바른지? 아니면 적어도 이것에 대해 생각하는 좋은 방법입니까? –

+0

아니면 그냥 그것에 대해 생각하는 것이 낫습니다. 작업 그룹은 작업 항목 모음입니다. 워프는 작업 항목 모음이기도합니다. 그러나 워프와 작업 그룹은 다른 용도로 사용됩니다. 이것을 생각하는 것이 더 좋은 방법일까요? (나는 현재의 이해/혼란을 잘 전달하기를 바랍니다) –

관련 문제