Single instruction, multiple thread (SIMT) is an execution model used in parallel computing where single instruction, multiple data (SIMD) is combined with multithreading. (출처. Wikipedia)
SIMT = SIMD with multithreading
SIMT = SIMD hardware with MIMD programming model
...
정확하게 SIMT, SIMD는 Single Instruction Multi Thread, Data 를 의미하는데 매우 유사하지만해당 연구를 하는 종사자들은 부분적으로 다르다고들 이야기 한다.
일반적으로 데이터 병렬화는 작업의 범위, 크기보다 훨씬 중요한데 이유는 데이터 크기만을 확장할 수 있기 때문이다.
따라서 SIMD 아키텍처를 사용하여 명령어 처리 하드웨어의 크기를 줄이고 싶지만, 구식 SIMD는 프로그램하기가쉽지 않다.
그래서 NVIDIA의 SIMT구조를 개발한 것은 매우 현명하다고 생각한다.
SIMD의 경우 효율성을 유지하지만 모든 스레드가 독립적으로 작동할 수 있는 SIMT구조가 훨씬 더 유연하기 때문이다.
물론 SIMT구조를 이용하게 되면 스레드가 독립적으로 작동하기 때문에 제어문이나 분기문이 많아지게 되면 처리량이 낮아 질 수도 있는 문제가 있지만, 프로그램을 작성할 때 그러한 제한을 회피 할 수 있게 프로그램을 작성하여 SIMT구조의 최대한의 이점을 얻을 수 있도록 해야할 것이다.
댓글 없음:
댓글 쓰기