2016년 11월 12일 토요일

SIMT(Signle Instruction Multi Thread)?



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구조의 최대한의 이점을 얻을 수 있도록 해야할 것이다.



댓글 없음:

댓글 쓰기