SIMD를 이용한 깁스 샘플링 연산 최적화(SSE2, AVX)
지난 몇년간 CPU의 성능은 반도체 공정의 향상과 그로 인한 클럭 상승에 따라서 줄곧 높아져왔습니다. 무어의 법칙이 잘 작동하던 2000년대 초반까지는 프로그램 코드를 고치지 않아도 CPU의 클럭 상승으로 자동으로 프로그램의 성능도 높아져올 수 있었습니다. 그러나! 공정 미세화가 차츰 둔해지고, 집적화로 인한 발열을 감당할 수 없게 되자 CPU업계는 CPU의 발전 방향을 약간 틀었는데요, 1) 단일 코어의 성능을 향상시키기보다, 코어의 수를 늘리는 쪽으로, 2) 명령어 수준의 병렬성을 높여 최대한 효율적으로 연산을 처리하는 쪽으로 말이죠.1번은 멀티 스레딩 프로그래밍을 촉발시켰습니다. 기존의 알고리즘들을 병렬화하는 방향으로 코드를 수정함으로써 프로그램의 성능을 높일수 있게된 것입니다. 깁스 샘플링 알고리..
프로그래밍
2018. 5. 6. 19:52