해결된 질문
작성
·
187
·
수정됨
0
안녕하세요. 먼저 좋은 CUDA 강의를 제공해주셔서 감사합니다.
다름이 아니라 15-4 강의에서 Warp를 동시에 돌린다는 말에 질문이 있습니다.
Warp 스케줄링을 저는 아래와 같이 비교하여 이해하였습니다.
CPU: Core -> 여러개의 쓰레드
GPU: SM -> 여러개의 Warp
강의 내용처럼, CUDA에서 Warp별로 스케줄링을 관리를 한다면 모든 SP의 Clock들이 같은 Instruction을 수행(SM내 SP들의 Clock들은 Sync가 맞음)하여야 Warp단위로 스케줄링이 가능할 것 같은데, 제 생각이 맞는지 궁금합니다.
감사합니다.
답변 1
0
안녕하세요.
네. 당연히 그렇게 처리 합니다.
SM 1개 내의 모든 SP 들은 같은 clock 으로 동시에 실행됩니다.
warp 단위로 실행 해야 하다 보니, 같은 warp 를 실행하는 32개의 SP 는 instruction 도 똑같은 것을 수행합니다.
강의에서도 한번 설명했지만, GPU 구조에서는 ALU + control unit 쪽을 줄이는 대신 갯수를 늘리는 쪽으로 설계 방향을 잡았는데, ALU 를 줄이는 데는 한계가 있고, 결국 control unit을 최대한 줄이는 방법이, 32개의 warp를 실행하는 32개의 SP가 control unit 1개의 통제를 받는 방식이고, 이러면, 이들은 동시에 똑같은 instruction을 수행하는 수 밖에 없습니다.
감사합니다.