방금 옵테론 관련 글 쓰면서 도대체 HSA가 무엇일까 싶으신 분들이 많은 겁니다.
HSA는 메모리 통합을 목적으로 하는 기관입니다.
CPU는 하나의 코어가 하나의 일을 하며, 쿼드코어라면 4개의 일을 동시에 할 수 있습니다. 그러나 GPU는 다릅니다. 하나의 작업을 수많은 프로세서가 나눠서 처리합니다. 그래서 CPU는 직렬 컴퓨팅이라고 할 수 있고, GPU는 병렬 컴퓨팅이라고 할 수 있습니다. 그래서 GPU는 굉장한 성능을 보여줍니다. 하지만, 이는 단일 작업에 한할 뿐입니다. 그래서 CPU와 GPU는 필요한 부분이 다르고, 하나의 작업이라도 CPU와 GPU가 필요에 따라 연산할 필요가 있습니다.
현재는 CPU가 처리하던 작업을 GPU가 하려면 시스템 메모리의 내용을 GPU 메모리로 복사해야합니다. GPU가 처리하는 것이 시간을 단축 시킬수 있음에도, 시스템 메모리에서 그래픽 메모리로 복사하는 과정을 포함시키면 GPU가 처리했을 땐 더 오래걸러서 CPU로 처리하곤 합니다. 이러다보니 시간이 걸리고 전력 소모량이 증가합니다.
HSA는 메모리가 통합되어 GPU와 CPU가 하나의 메모리를 사용합니다. 다시말해 GPU와 CPU가 얼마든지 바꾸어가며 처리할 수 있게됩니다. 소수 연산이나 몇몇은 CPU보다 GPU가 처리하는 것이 우수합니다. 퀵싱크나 엔비디아 CUDA가 나온 이유지요. HSA가 되면 영상이나 3D 같은 것들 외에도 얼마든지 GPU가 처리하고, GPU가 하던일도 언제든지 CPU가 처리할 수 있게 해줍니다. 이때 CPU와 GPU 중 무엇이 적합한지는 프로그래머가 아닌 컴퓨터가 판단합니다. 따라서 성능이 1.5배가 되기 위해 프로그램 라인수는 줄어들지요.
페이스북 서버가 HSA가 일부적용되었는데 발열, 전력 소모량도 확연히 감소하고 시간도 단축되었다고 합니다.
우리 주변에서 가장 흔히 볼수 있는 HSA 제품은 PS4입니다.
cpu는 저전력 옥타코어 정도이고 그래픽도 7970m급이지요. 그러나 메모리는 CPU와 GPU 모두 GDDR5급 8기비바이트 메모리가 장착되어있습니다.
엔하위키에 보면 그정도 성능에 1080p해상도 60프레임을 권장하는 소니가 이상하다고 씌여있는데, 모르는 소리입니다. ‘CPU가 후지고 GPU도 좋은편이 아니다’라고 평가하는 것부터가 절못되었죠. PS4는 ‘정수연산 CPU가 옥타코어고 소수연산 CPU가 7970m급이다’라고 보는 것이 맞습니다.
현재 PC들을 보면 소수연산은 최대한 그래픽에게 맡기는 방향으로 가고 있습니다. 그렇기에 AMD CPU는 너무 앞서있다는 평가를 받지요. AMD CPU는 분명 DX9(DirectX9)를 사용하는 게임에선 저급할겁니다. 옥타코어를 사도 소수연산은 4쓰레드 밖에 없으니깐요. 그러나 dx11이나 dx12, openCL이 함께 이루어진다면 CPU는 소수연산은 하지 않게 될겁니다. 그렇다면 소수연산을 줄여서 정수연산을 8코어 16코어로 늘리는 편이 이득이지요.
그래서 인텔은 아무리 소수연산이 좋아도 openCL 벤치마킹에선 쿼드코어고 AMD는 300개 정도의 코어를 가졌기 때문에 그렇게 큰 결과의 차이가 발생했던 것입니다.