์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
1. ๊ฐ์[ํธ์ง]
HSA(Heterogeneous System Architecture)๋ ์ด๊ธฐ์ข ์์คํ ์ํคํ ์ฒ์ ์ค์๋ง์ด๋ค.
๋์ผํ ์ฑ๊ฒฉ์ ์ฝ์ด๋ฅผ ๋ชจ์ ํ๋ก์ธ์(๋ฉํฐ์ฝ์ด CPU๋ GPU)๋ฅผ ๊ฐ๋ฆฌ์ผ ํธ๋ชจ์ง๋์ด์ค(Homogeneous)๋ผ๊ณ ํ๊ณ , ์ด์๋ ๋ฐ๋๋ก ์ ํ ๋ค๋ฅธ ์ญํ ์ ํ๋ ์ฝ์ด๋ฅผ ํ๋๋ก ํตํฉํ ํ๋ก์ธ์๋ฅผ ๊ฐ๋ฆฌ์ผ ํคํ ๋ก์ง๋์ด์ค(Heterogeneous)๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ฌ๊ธฐ์ ํธ๋ชจ์ง๋์ด์ค ํตํฉ์ด ๋ฉํฐ์ฝ์ด ํ๋ก์ธ์์ด๊ณ , ํคํ ๋ก์ง๋์ด์ค ํตํฉ์ด HSA์ด๋ค.
HSA๋ ํคํ ๋ก์ง๋์ด์ค์ธ CPU์ GPU๋ฅผ ํ๋์ ์ฐ์ฐ์ฒด๋ก ๊ฐ์ฃผํ๋ ์ถ์ ๊ณ์ธต์ ์์ฑํด GPU๋ฅผ ์ฐ์ฐ ๋ณด์กฐ์ฉ์ผ๋ก ์ฌ์ฉํ๊ณ , CPU์ GPU ์ฌ์ด์ ๋ฐ์ดํฐ๊ฐ ์ค๊ฐ ํ์๋ฅผ ์์ค๋ค๋ ๊ฒ์ด๋ค. ์ฆ HSA๋ CPU์ GPU๋ฅผ ํ๋์ ์นฉ์ผ๋ก ํตํฉ์ํค๊ณ ๋ ์ฌ์ด์ ๊ธด๋ฐํ ์ฐ๊ณ๋ฅผ ์ถ๊ตฌํ๋ ๊ฒ์ด๋ค.
์ด๋ GPU๊ฐ ๋ฐ์ ํ๋ฉด์ ์ด๋ฅผ ์๋ก์ด ์ฐ์ฐ ์ฅ์น๋ก ํ์ฉํ๋ ค๋ ์๋๊ฐ ์์๊ณ , ์ด๋ก๋ถํฐ ๋์ถ๋ ๋ฌธ์ ์ ๊ณผ ๊ทธ ํด๊ฒฐ์ฑ ์ ์ฐพ์๊ฐ๋ฉด์ ๋ง๋ค์ด์ง ๊ฐ๋ ์ด๋ค. ๊ฐ๋จํ๊ฒ, GPGPU๋ฅผ ์ง๊ธ๋ณด๋ค ๋ ํ์ฉํ๊ธฐ ์ฝ๋๋ก ํ๋ ์ํคํ ์ฒ ์ค๊ณ๋ฒ์ผ๋ก ๋ณด๋ฉด ๋๋ค.
AMD/APU๋ ์ธ์ฅ ๊ทธ๋ํฝ์นด๋๋ฅผ ์ฌ์ฉํด๋ iGPU๋ฅผ HSA๋ก ์ฌ์ฉํด CPU์ ์ฐ์ฐ ์๋์์ ๋น์ฝ์ ์ธ ํฅ์์ ๊ฐ์ ธ์จ๋ค.
2. HSA ์ฌ๋จ[ํธ์ง]
http://107.170.238.52/wp-content/uploads/2013/11/banner2_update.png
2012๋ , AMD์์ ์ด๊ธฐ์ข ์์คํ ์ํคํ ์ฒ ์ฐ๊ตฌ๋ฅผ ํ๊ธฐ ์ํด์ ์ค๋ฆฝํ ๋น์๋ฆฌ ์ฌ๋จ์ด๋ค.
ARM ์ง์์ ๋น๋กฏํ์ฌ, ๋ชจ๋ฐ์ผ ์นฉ์ ์ ์์ฐํ๋ ํ์ฌ๋ค์ด ๋๊ฑฐ ๊ฐ์ ํด ์๋ค(์ผ์ฑ์ ์๋ ์ฌ๊ธฐ์ ์ํด ์๋ค). ์ด์ฒ๋ผ HSA ๊ธฐ์ ์ ARM ์ง์์์ ํ์ ๋ฐ๋๋ค.
์ธํ , NVIDIA, IBM์ ๋น๋กฏํ์ฌ ๋ ์ ํ๋ ํผ์ผ๋ก GPGPU ๋ถ์ผ์ ์ง์ถ์ค์ธ ํ์ฌ๋ค์ ๊ฐ์ ํ์ง ์์๋ค.๋๊ตฌ๋ ์ด ์ธ ์
์ฒด๊ฐ ์ฐจ์งํ๋ ๋ฐ๋์ฒด ์นฉ์
๋น์ค์ด ์ ์ฒด์ 3๋ถ์ 1์ด๋ค.
๊ฒ๋ค๊ฐ ์ธํ ์์๋ HSA ์ฌ๋จ์ ๊ฐ์ ํ์ง๋ ์์์ง๋ง ๋ธ๋ก๋์ฐ ๋ถํฐ HSA ์ง์์ด ๋๋ ๊ตฌ์กฐ๋ก ๋ง๋ค์๋ค. OpenCL 2.0์ HSA๊ฐ ํ์ค ๋ช ๋ น์ด๋ก ํฌํจ๋์๊ธฐ ๋๋ฌธ์ HSA๊ฐ ๋๋ ๊ตฌ์กฐ์ด๊ณ , OpenCL 2.0์ ์ง์ํ๋ฉด HSA ์ฌ์ฉ์ด ๋๋ ์ค์ ์ด๋ผ AMD ์ ์ฅ์์๋ ์คํ๋ ค ๋ ์ด ๋ ์๋ ์๋ ์ํฉ.[1] NVIDIA๋ ์์ง๊น์ง ๋ก๋ฐฅ ์์ค์ ๋ถ๊ณผํ์ง๋ง, ๊ทธ๋ํฝ ์นด๋์ ARM CPU๋ฅผ ๋ด์ฅํ๋ ๊ณํ์ด ์คํ๋๋ฉด ์ด๋ฅผ ์ํด HSA ์ง์์ ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค.[2] ๋ค๋ง ์ค๋ น ์ ์๋๋ฆฌ์ค๊ฐ ์ค์ ๋ก ์ผ์ด๋๋ค๊ณ ํด๋ CUDA๋ฅผ ํ์ฅํ๊ฑฐ๋ OpenCL 2.0(๋๋ ๊ทธ ์ดํ ๋ฒ์ )๋ฅผ ํตํด ์ง์ํ๋ ๋ฑ, HSA ์ฌ๋จ๊ณผ๋ ๋ฐ๋ก ๋ ๊ฐ๋ฅ์ฑ๋ ์๊ธฐ ๋๋ฌธ์ ์๋จ์ ๊ธ๋ฌผ.
์์ธํ ๋ด์ฉ์ HSA ์ฌ๋จ(์๋ฌธ) ์ฐธ๊ณ .
2012๋ , AMD์์ ์ด๊ธฐ์ข ์์คํ ์ํคํ ์ฒ ์ฐ๊ตฌ๋ฅผ ํ๊ธฐ ์ํด์ ์ค๋ฆฝํ ๋น์๋ฆฌ ์ฌ๋จ์ด๋ค.
ARM ์ง์์ ๋น๋กฏํ์ฌ, ๋ชจ๋ฐ์ผ ์นฉ์ ์ ์์ฐํ๋ ํ์ฌ๋ค์ด ๋๊ฑฐ ๊ฐ์ ํด ์๋ค(์ผ์ฑ์ ์๋ ์ฌ๊ธฐ์ ์ํด ์๋ค). ์ด์ฒ๋ผ HSA ๊ธฐ์ ์ ARM ์ง์์์ ํ์ ๋ฐ๋๋ค.
์ธํ , NVIDIA, IBM์ ๋น๋กฏํ์ฌ ๋ ์ ํ๋ ํผ์ผ๋ก GPGPU ๋ถ์ผ์ ์ง์ถ์ค์ธ ํ์ฌ๋ค์ ๊ฐ์ ํ์ง ์์๋ค.
๊ฒ๋ค๊ฐ ์ธํ ์์๋ HSA ์ฌ๋จ์ ๊ฐ์ ํ์ง๋ ์์์ง๋ง ๋ธ๋ก๋์ฐ ๋ถํฐ HSA ์ง์์ด ๋๋ ๊ตฌ์กฐ๋ก ๋ง๋ค์๋ค. OpenCL 2.0์ HSA๊ฐ ํ์ค ๋ช ๋ น์ด๋ก ํฌํจ๋์๊ธฐ ๋๋ฌธ์ HSA๊ฐ ๋๋ ๊ตฌ์กฐ์ด๊ณ , OpenCL 2.0์ ์ง์ํ๋ฉด HSA ์ฌ์ฉ์ด ๋๋ ์ค์ ์ด๋ผ AMD ์ ์ฅ์์๋ ์คํ๋ ค ๋ ์ด ๋ ์๋ ์๋ ์ํฉ.[1] NVIDIA๋ ์์ง๊น์ง ๋ก๋ฐฅ ์์ค์ ๋ถ๊ณผํ์ง๋ง, ๊ทธ๋ํฝ ์นด๋์ ARM CPU๋ฅผ ๋ด์ฅํ๋ ๊ณํ์ด ์คํ๋๋ฉด ์ด๋ฅผ ์ํด HSA ์ง์์ ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค.[2] ๋ค๋ง ์ค๋ น ์ ์๋๋ฆฌ์ค๊ฐ ์ค์ ๋ก ์ผ์ด๋๋ค๊ณ ํด๋ CUDA๋ฅผ ํ์ฅํ๊ฑฐ๋ OpenCL 2.0(๋๋ ๊ทธ ์ดํ ๋ฒ์ )๋ฅผ ํตํด ์ง์ํ๋ ๋ฑ, HSA ์ฌ๋จ๊ณผ๋ ๋ฐ๋ก ๋ ๊ฐ๋ฅ์ฑ๋ ์๊ธฐ ๋๋ฌธ์ ์๋จ์ ๊ธ๋ฌผ.
์์ธํ ๋ด์ฉ์ HSA ์ฌ๋จ(์๋ฌธ) ์ฐธ๊ณ .
3. ์ญ์ฌ[ํธ์ง]
๊ฐ๋
์์ฒด๋ ์์ ๋ถํฐ[3] ์ ์๋์์ง๋ง, HSA๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง๊ฒ ๋ ์ญ์ฌ๋ ์งง๋ค. HSA๋ผ๋ ์ด๋ฆ์ด ๋์ค๊ฒ ๋ ๋๋ 2000๋
๋ ์ค๋ฐ ๊ฒฝ์ด๊ณ , HSA ์ฌ๋จ์ด ์ค๋ฆฝ๋ ๋ ๋ถ๊ณผ 2012๋
๊ฒฝ์ด๋ค(์ฌ์ค HSA๋ ๊ธฐ์ ๋ช
์ด๊ณ , AMD์์ ๋ฐ๋ ๋ธ๋๋๋ Fusion์ด๋ค. ํ์ง๋ง Future is Fusion ๋ง์ผํ
์ ๋ฐ๋ ๊ฑธ ๋ ๊ณ ์ ๋จน๊ณ ๋ธ๋๋๋ฅผ ๋ฐ๊ฟ ๋ปํ๋ค ๋ณด๋ HSA๋ ์ด๋ฆ์ด ์ ๋ฉด์ผ๋ก ๋์ค๊ฒ ๋ ๊ฒ.[4][5] ๊ทธ๋ฆฌ๊ณ HSA๋ฅผ ์ง์ํ๋ AMD์ ํ๋์จ์ด๋ 2013๋
11์์ ์ถ์๋ PS4์ ์ปค์คํ
APU์ 2014๋
1์์ ์ถ์๋ ์นด๋ฒ ๋ฆฌ๋ถํฐ ํด๋น๋๋ค.
๋ํ OpenCL 2.0์ HSA๊ฐ ํ์ค ๋ช ๋ น์ด๋ก ํฌํจ๋์๊ธฐ ๋๋ฌธ์ OpenCL 2.0์ ์ง์ํ๋ ์ํํธ์จ์ด์์๋ HSA๋ฅผ ์ด๋ ์ ๋ ํ์ฉํ ์ ์๋ค.ํ์ง๋ง ๊ฐ์ผ ํ๋ ๊ธธ์ด ์์ง ๋ฉ๋ค.
๋ํ OpenCL 2.0์ HSA๊ฐ ํ์ค ๋ช ๋ น์ด๋ก ํฌํจ๋์๊ธฐ ๋๋ฌธ์ OpenCL 2.0์ ์ง์ํ๋ ์ํํธ์จ์ด์์๋ HSA๋ฅผ ์ด๋ ์ ๋ ํ์ฉํ ์ ์๋ค.
4. HSA์ ๊ฐ๋ [ํธ์ง]
4.1. hUMA[ํธ์ง]
CPU ๋ฐ GPU ๊ฐ๋ฐ์ฌ AMD๊ฐ ์ค๋ช ํ๋ hUMA(heterogeneous Uniform Memory Access)
์๋ก ๋ค๋ฅธ ํ๋ก์ธ์(CPU์ GPU)์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํต์ผํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ณต์ ํ๋ค๋ ๊ฐ๋ ์ด๋ค. ํ๋ง๋๋ก GPU๊ฐ CPU์ ๊ฐ์ ์์ค์ผ๋ก ๋ค๋ฃจ์ด์ง๋ฉฐ, ๋์ผํ ๋ฉ๋ชจ๋ฆฌ์ ์ก์ธ์คํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
๊ธฐ์กด ๋ฐฉ์์ CPU์ GPU๊ฐ ์๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ผ๋ก ๋๋์ด์ ธ ์๋ค.[6] ์ด๋ ๊ฒ ๋ฐ๋ก ๋จ์ด์ง ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์์๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๋๊ธฐํ์ ์ฃผ์ ๋ณํ์ด ํ์ํ๋ค. ์ด๋ฅผ CPU์ GPU๊ฐ ๊ณต์ ํ๋ ์ถ์ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต์ ์์ฑํด ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ์ด๋๋ ์ค๋ฅผ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ๋ค๋ ๊ฒ์ด๋ค.
์ด ๊ณผ์ ์์์ CPU์ GPU์ ์๋ฐฉํฅ ๋ฉ๋ชจ๋ฆฌ์ ์ผ๊ด์ฑ์ ํ๋์จ์ด๋ก ์ ์งํ๋ค. ํ๋์จ์ด๊ฐ ์๋ฐฉํฅ์ผ๋ก ์บ์๋ฅผ ์ค๋ํํ๊ณ ์ผ๊ด์ฑ์ ์๋์ผ๋ก ํ๋ณดํ๋ค. ์ด๋ ํ๋ก์ธ์๊ฐ ์บ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐฑ์ ํ ๊ฒฝ์ฐ ๋ค๋ฅธ ํ๋ก์ธ์๋ฅผ ํ์งํ ์ ์์ด ๋ฉ๋ชจ๋ฆฌ ์ผ๊ด์ฑ์ ์๋ฌ๊ฐ ์๊ธฐ์ง ์๋๋ก ํ๋ ๊ฒ์ด๋ค.[7]
๊ธฐ์กด์ ๋ฐ์ดํฐ ์ฐ๊ฒฐ๋ฐฉ์์ "CPU - ์ฃผ ๋ฉ๋ชจ๋ฆฌ - GPU ๋ฉ๋ชจ๋ฆฌ - GPU" ์๋๋ฐ ์ฃผ ๋ฉ๋ชจ๋ฆฌ์ GPU ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํตํฉ์์ผ "CPU - ๊ณต์ ๋ฉ๋ชจ๋ฆฌ - GPU"๋ก ์ฐ๊ฒฐํ๋ค๋ ๊ฒ์ด๋ค.
์ง๋ ฌ(์ฐ์์ ์ธ) ์์ ๋ด๋นํ๋ CPU์ ๋ณ๋ ฌํ ์์ ๋ฅผ ๋ด๋นํ๋ GPU๋ฅผ ํจ์จ์ ์ผ๋ก ๋ฌถ๋ ๊ฒ hUMA์ ์ญํ ์ด๋ค. ์ด๋ฅผ ํตํด์ GPU๊ฐ ์คํํ๋ ๋ฒ์ฉ ํ๋ก๊ทธ๋จ์ ์ง๊ธ๋ณด๋ค ๋ ๊ฐ๋จํ๊ฒ ์ธ ์ ์๋๋ก ํ๋ ๊ฒ์ด๋ค.
- ์ฅ์ : ๊ฐ๋จํ ์์ ์ค์ผ์ค๋ก, ๊ด๋ฆฌ๊ฐ ํธํ๋ค.
๊ทธ ๋์์ CPU์ GPU ์ฌ์ด์ ๋ฐ์ดํฐ ์ ๋ฌ์ OS๊ฐ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ผ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์ถ์ ์ด ์ด๋ ค์ด๋ฐ, ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋จ๊ณ๊ฐ ์ ์ด ์์ ์ค์ผ์ค์ด ๋จ์ํ๋ฉฐ, ๋ณต์ฌํ ํ์๊ฐ ์์์ผ๋ก์จ ๋ฐ์ดํฐ ์ถ์ ์ด ๊ฐ๋จํ๊ณ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ํจ์ฌ ํธํ๋ค.
์ด์ ๋ฐ๋ผ ์ค์ด๋ ์์ ์ค์ผ์ค๋งํผ ๋ ๋น ๋ฅธ ์ฒ๋ฆฌ๊ฐ ๋๊ณ , ๋ถํ์ํ ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค๊ฐ ์ค์ด๋ค์ด ์ ๋ ฅ ์๋น๋ ์ค์ผ ์ ์๋ค.
๋ํ ํ๋ก๊ทธ๋๋จธ ์ ์ฅ์์๋ ํ๋์จ์ด ์ฌ์ด์ ๋ฐ์ดํฐ ์ ๋ฌ์์ ๋ฐ์ดํฐ ์ฌ์ด์ ๋๊ธฐํ์ ์ผ๊ด์ฑ ๋ฌธ์ ๋ฅผ ์ ๊ฒฝ ์ธ ํ์๊ฐ ์๋ค.[8]
- ๋จ์ : ์๋๋ฅผ ์ญํํ ๊ธฐ์ ์ด์๋ค.
GPU ์ ์ฉ ๋ฉ๋ชจ๋ฆฌ์ธ GDDR์ ์ผ๋ฐ DRAM๋ณด๋ค ์๋ฑํ ๋น ๋ฅธ ์๋๋ก ๋์ํ๋ค.[9] ๊ทธ๋ฐ๋ฐ ์ฃผ๋ฉ๋ชจ๋ฆฌ์ GPU ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํตํฉ์ํจ๋ค๋ฉด GPU์ ๋์ ์๋๋ ๋ฉ๋ฌ์ ๋จ์ด์ง๋ค. ์ด ์ ์ ์ด ๊ธฐ์ ์ด ๋ด์ฅ ๊ทธ๋ํฝ ์ ์ฉ ๊ธฐ์ ์ด ๋ ์๋ฐ์ ์๋ ์ด์ ์ด๋ค.[10][11] ์ธํ ์ ํ์ค์ฐ๋ถํฐ๋ L4 ์บ์๋ผ๊ณ ๋ ๋ถ๋ฅด๋ 128MB์ eDRAM์ด ํ์ฌ๋จ์ผ๋ก์จ ๋ธ๋ก๋์ฐ, ์ค์นด์ด๋ ์ดํฌ ์ธ๋์ ๋ค์ด์์ผ 'IRIS' ๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ณ ์ฑ๋ฅ ๋ด์ฅ๊ทธ๋ํฝ์ ํ์ฌํ ๋ชจ๋ธ์ ํํ์ฌ AMD/APU๋ฅผ ๋ฐ์ด๋๋ ๋ด์ฅ๊ทธ๋ํฝ ์ฑ๋ฅ์ ๋ผ ์ ์๋ CPU๋ฅผ ๋ง๋ค์๋ค.
๊ฒ๋ค๊ฐ ๊ทธ ๋์ ๋ง๋ค์ด์ง ํ๋ก๊ทธ๋จ์ GPU ๋ฉ๋ชจ๋ฆฌ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋๋ก ๋ง๋ค์ด์ก๋ค.[12] ๋น์ฐํ ๊ธฐ์กด ํ๋ก๊ทธ๋จ๊ณผ๋ ํธํ์ด ์ ํ ๋์ง ์๋๋ค. ์ด๋ฌํ HSA์ ์ฅ์ ์ ์ด๋ฆฌ๊ธฐ ์ํด์๋ ๊ธฐ์กด ๋ฐฉ์๊ณผ๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋๋ก ํ๋ก๊ทธ๋จ์ ์๋ก ์ง์ผ ํ๋ค. ์ฆ, ๊ธฐ์กด ํ๋ก๊ทธ๋จ ์ฌ์ฉ์์๊ฒ๋ ์ ํ ์ธ๋ชจ ์๋ ๊ธฐ์ ์ธ ์
์ด๋ค.
4.2. hQ[ํธ์ง]
์๊ฐ ๊ธฐ์กด ๋ฐฉ์, ์๋๊ฐ hQ(Heterogeneous Queuing)
hQ๋ ๊ฐ๋จํ CPU์ GPU ์ฌ์ด์ ์๋ ๋์ ์ฅ๋ฒฝ์ ์ค์ด๋ ๋ฐฉ์์ ๊ตฌ์กฐ๋ฅผ ๋งํ๋ค.
ํ์ฌ์ GPU์ฒ๋ฆฌ๋ OS์ ๋ฐ๋ผ์๋ง ์ ์ด ๋ ์ ์๋ค. ๊ทธ๋์ GPU ์ ๊ทผ์ ์ ํ๋ฆฌ์ผ์ด์ โ OS API โ ๋๋ผ์ด๋ฒ โ GPU์ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ๋๋ฐ, GPU๊ฐ ์์ ์ ์คํํ ๋๋ง๋ค ์ด ๊ณผ์ ์ ๊ฑฐ์ณ์ GPU๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์๊ฐ ์์ ๋ฟ๋๋ฌ, ์ด ๊ณผ์ ์์ ์๋นํ ์ง์ฐ์ด ๋ฐ์ํ๋ค.[13]
๊ทธ๋์ ์ฌ์ฉ์๊ฐ ์ง์ GPU์ ํ๋ก์ธ์ค๋ ์์ ์ ํ ๋นํ ์ ์๋๋ก ํ๋ค๋ ๊ฒ์ด hQ์ ๊ฐ๋ ์ด๊ณ , ์ด๋ฅผ ์ํด ์ฌ์ฉ์๊ฐ GPU ์์ ์ ์คํํ๊ธฐ ์ํ ๊ตฌ์กฐ๋ฅผ ํ๋์จ์ด ๋จ๊ณ์์ ์ ๊ณตํ๋ ๊ฒ์ด hQ์ด๋ค.
- ์ฅ์ : GPU ์์ ์ ์ ์ ๊ฐ ์ง์ ์ก์ธ์คํ ์ ์๋ค. ์ด์ ๋ฐ๋ผ์ ๊ธฐ์กด ๋ฐฉ์์ ๋ณต์กํ ๊ณ์ธต ๋ณํ์ ์ํ ์ ๊ทผ์ด ํ์ํ์ง ์๊ฒ ๋๋ฉด์ ์ค๋ฒํค๋๋ฅผ ํฌ๊ฒ ๋ฎ์ถ ์ ์๋ค.
CPU : ์ผ์ด ์ค์๋ค! ์ผ ์ ๋๋ค.
OS๋ฅผ ๊ฑฐ์น์ง ์๊ธฐ ๋๋ฌธ์ GPU ์์ ์ ์คํํ๊ธฐ ์ํ ํจํท ํ์์ HSA ๊ธฐ๋ฐ ํ๋ซํผ ์๋์์ ํ์คํํ ์ ์๋ค. ์ฆ, x86 ๊ธฐ๋ฐ ํ๋ก์ธ์๋ ARM ๊ธฐ๋ฐ ํ๋ก์ธ์๋ HSA๋ฅผ ์ง์ํ๊ธฐ๋ง ํ๋ฉด ๊ฐ์ ํฌ๋งท์ ํ์ฉํ์ฌ GPU๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- ๋จ์ : ์ ์ฌ์ ์ธ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค.
OS๊ฐ ๋ชจ๋ ์ฃผ๋ณ๊ธฐ๊ธฐ๋ฅผ ์ ์ดํ๋ ๊ฒ์ด ์ฌ์ฉ์์๊ฒ ๊ฐ์ฅ ํธ๋ฆฌํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ฌ์ฉ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ๋์จ์ด์ ๋ง์๋๋ก ์ ์ํ ์ ์๋ ํ๊ฒฝ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํธํ์ฑ์ ๋ณด์ฆํ์ง ๋ชปํ๊ณ ๋ณด์๋ ์งํฌ ์ ์๋ค.[14]
๋ํ hUMA์ ๋น์ทํ ๋ฌธ์ ๊ฐ ์๋๋ฐ, ์๋ก์ด ์ด ์ ๊ทผ๋ฐฉ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ทผ ๋ฐฉ์๋ ์์ ํ ๋ฐ๊พธ์ด์ผ ํ๋ค. ์ด ๋ฐฉ์์ด ๊ธฐ์กด ๋ฐฉ์๋ณด๋ค ๋ ์ฝ๊ณ ๋น ๋ฅด๋๋ผ๋ ๊ทธ ๋์ ์์์ฌ๋ฆฐ ๋ ธํ์ฐ๋ฅผ ์ ๋ถ ํฌ๊ธฐํ๊ณ ์๋ก์ด ํ๋์จ์ด์ ๋ง์ถ ์๋ก์ด ๋ฐฉ์์ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ์ ํ์ฉํ ๋งํผ ๋ชจํ์ฌ ๊ฐํ ํ๋ก๊ทธ๋๋จธ๋ ๋ง์ง ์๋ค๋ ์ ์ด๋ค.
๊ฒ๋ค๊ฐ ์๋ก์ด ์ด ํ๋์จ์ด๋ฅผ ๋ง๋๋ ํ์ฌ๋ ์์ฅ ์ ์ ์จ์ด 20%์ ๋ถ๊ณผํ๊ณ ์ ์ฒด ํ๋์จ์ด์์๋ 10% ์๋๋ ๊ท๋ชจ์ธ๋ฐ, ์ด๋ฌํ ์๋ก์ด ํ๋์จ์ด์ ๋ง์ถ์ด ํ๋ก๊ทธ๋จ์ ๋ง๋ค ํ์ฌ๋ ๋ง์ง ์๋ค๋ ์ ์ด๋ค.๋ง์ด๋์ ๋น์ [15]
5. HSA์ ๋ชฉํ์ ํ๊ณ[ํธ์ง]
ํ์ฌ์ GPU ํ์ฉ ๋ฐฉ์ OS์ ๊ฐ์ญ์ด ๋ง๊ณ ๋จ๊ณ๊ฐ ๋ณต์กํ์ฌ ํ์ฉํ๊ธฐ๊ฐ ํ๊ฒน๋ค. | HSA์ GPU ํ์ฉ๋ฐฉ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด GPU๋ฅผ ์ง์ ํ์ฉ ํ ์ ์๋๋ก ํ์ฌ ํจ์จ์ ๋์ธ๋ค. |
HSA์ ๊ถ๊ทน์ ์ธ ๋ชฉ์ ์ ๋ณ๋ ฌ ์ฐ์ฐ ํ๋ก๊ทธ๋๋ฐ์ ํ๋์ด๋ค. ์ด๋ฅผ ์ํด GPGPU ํ๋ก๊ทธ๋๋ฐ์ ๋์ด๋๋ฅผ ๋ฎ์ถ๊ณ ํ๋์จ์ด์ ์ ์ฝ์ ์ฝ๋งค์ด์ง ์๊ฒ ๋์ํ ์ ์๋ ๋ณ๋ ฌ ์ปดํจํ
ํ๊ฒฝ์ ๋ง๋๋ ๊ฒ์ด๋ค.[16] ์ด ๋ชฉ์ ์ AMD๊ฐ 2000๋
์ค๋ฐ์ ๋ด์ธ์ฐ๋ ํดํ
๋ก์ง๋์ด์ค ์ฝ์ด๋ผ๋ ๋ชฉํ๋ฅผ ์ ํ๋ ํผ์ผ๋ก ํ๋ํ ๋ชจ์ต์ด๊ธฐ๋ ํ๋ค.
๊ถ๊ทน์ ์ธ ๋จ๊ณ์์๋์ฌ์ฉ์ ์ ์ฅ์์ GPU๋ CPU์ ๋ณด์กฐ ์ฐ์ฐ ์ฝ์ด์ ๋๋ก ์ธ์ํ ์ ๋๋ก GPGPU ํ๋ก๊ทธ๋๋ฐ์ ๋์ด๋๋ฅผ ๋ฎ์ถ๋๊ฒ์ด ๋ชฉํ์ด๋ค.
๊ทธ๋ฌ๋ ๋ชฉ์ ๋งํผ ๊ทธ ํ๊ณ ์ญ์ ๋๋ ทํ๋ค. GPGPU ๋ถ์ผ์์ ์ ๋์ฃผ์์ธ NVIDIA์ CUDA๋ฅผ ๋์ด๋ค์ด์ง ๋ชปํ๋ค๋ ์ [17], ๊ทธ๋ฆฌ๊ณ CPU์ชฝ์์๋ ์ธํ ์ ๋์ด๋ค์ด์ง ๋ชปํด์ ๋น์ฅ ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋จธ๋ค์ด HSA์ ๋ํด์ ์ ์ข์ง ๋ชปํ ์์ ์ด๋ค. GPGPU ๋์ด๋๊ฐ ์๋ฌด๋ฆฌ ๋ฎ์์ง๋ค๊ณ ํด๋ ์ด๋ฅผ ์ด์ฉํ ํ๋์จ์ด๊ฐ ์๋ค๋ฉด ๋ฌด์ฉ์ง๋ฌผ์ด๋ค. ๊ทธ๋ฐ๋ฐ AMD๋ ์นด๋ฒ ๋ฆฌ๋ถํฐ ๋น๋ก์ HSA๋ฅผ ์ง์ํ ์ ๋๋ก, ๋ฆ์ ์๋๋ก HSA๋ฅผ ์ง์ํ๋ ํ๋์จ์ด๋ฅผ ๋ฐํํ๋ค. ์ฌ์ง์ด ์นด๋ฒ ๋ฆฌ์กฐ์ฐจ ๋ด๋ถ ๋ฒ์ค ๊ตฌ์กฐ๊ฐ ๋๋ผ๊ธฐ ์์ฅ์ฒ๋ผ ์ด์ง๋ฌ์์, GPU๋ CPU ์บ์๋ฅผ ๋ค์ฌ๋ค ๋ณผ ์ ์์ง๋ง CPU๋ GPU ์บ์๋ฅผ ๋ค์ฌ๋ค ๋ณผ ์ ์๋ ๋ฑ์ ๋ฌธ์ ๊ฐ ์๊ณ , ์ ์ ์ด๋ฐ ๋ฌธ์ ๊ฐ ๊น๋ํ๊ฒ ํด๊ฒฐ๋ ๋ ์ด๋ธ ๋ฆฟ์ง์ ์์๋ ๋ด๋น์๋ค์ด ๋ชจ๋ ๊ฒฝ์์ฌ๋ก ์ฎ๊ฒจ๊ฐ ๊ฒฝ์ ํ๋ซํผ์ ๋ง๋ค๊ณ ์๋ ๋ฑ ๋๋ ฅ ์์ค๋ก ํ๋ณด ๋ฌธ์์ HSA๋ ์ธ๊ธ์กฐ์ ๋ค ๋นผ๋ฒ๋ฆฌ๊ณ ๊ด๋ง ์ค์ด๋ค(...)# ๊ทธ ์ค ํ ์ฌ๋์ด NVIDIA๋ก ๊ฐ์ ๋ง๋ ๊ฒ NVLINK๋ผ๊ณ . NVLINK๋ ํ์คํ ์ธํ ๊ธฐ์ค 1์ธ๋ 100GB/s (ํํ ๋ํ๋ ์ค), 2์ธ๋ ์๋ฐฉํฅ 300GB/s (ํ ๋ํ๋ ์ค)์ ์ด๋ง์ด๋งํ ๋์ญํญ์ผ๋ก APU์ ์ ์ฌํ ํจ๊ณผ๋ฅผ ๋๋ฆฌ๋ ํ๋ซํผ์ด๋ค. ๋ค๋ง CPU์์ ํต์ ์ ์จ๋จน์ผ๋ ค๋ฉด PowerPC์ ์กฐํฉํด์ผ๋ง ํ๋ค. ์ด๋ก ์ x86 CPU์์ ์กฐํฉ๋ ๊ฐ๋ฅํ๊ธด ํ์ง๋ง CPU์ชฝ์์ ์ง์์ ์ ํ๋ค.[18] ๊ทธ CPU ๋ง๋๋ ํ์ฌ๋ค์ด ๊ฒฝ์ ํ๋ซํผ ํ๋งค์๋ผ๋ ์ฌ์ค์ ์๊ฐํ๋ฉด ์ง๊ทนํ ๋น์ฐํ ์ผ์ด์ง๋ง, ๋ฐ๋๋ก PowerPC๋ ํด๋น ๋ฌธ์์ ๋นํ์ ์ธ ์์ ๋ค์ ๋ณด๋ฉด ์๊ฒ ์ง๋ง ์์ CPU ์ฑ๋ฅ์ผ๋ก ๊ฒฝ์์ด ์ด๋ ค์ด ์ํฉ์ด๋ผ, ์ํผ์ปดํจํฐ์์ ์ฑ๋ฅ ๊ฒฝ์์ ์ํด GPU, ๋ณด์กฐ ํ๋ก์ธ์๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๋ ๋ฑ NVLINK๋ฅผ ์ง์ํ ๋งํ ๋๊ธฐ๊ฐ ์ถฉ๋ถํ ์ํฉ์ด๋ค.
๋๋ฌธ์ 19๋ ํ์ฌ HSA๋ฅผ ๊ฐ์ฅ ์ ์จ๋จน์ ์ ์๋ ํ๋ซํผ์ HSA๋ฅผ ์ฒ์ ์ถ์งํ AMD๊ฐ ์๋๋ผ, ์ญ์ค์ ์ด๊ฒ๋ ๊ธฐ์ ์ ์ผ๋ก๋ HSA๊ฐ ์๋(...) PowerPC ํ๋ซํผ ๊ธฐ๋ฐ์ CUDA์ด๋ค. ์ธํ ์ GPU์ฑ๋ฅ์ด ๋ฎ๊ณ , AMD๋ ์กฐ์ฉํ ์ ๊ณ ๋์ธ์ ๋ฌป์ด๊ฐ๋ ๋ถ์๊ธฐ์ด๊ณ (๋๊ตฌ๋ ์ด์ชฝ APU๋ ์ธํ ๋ณด๋จ ๊ณ ์ฑ๋ฅ์ผ ๋ฟ, ์ฌ์ ํ GPU ์ฑ๋ฅ์ด ๋ฎ์ ์ ๊ฐํ๊ณผ ๋ชจ๋ฐ์ผ ์ ํ๋ค๋ง ๋ด๋๊ณ ์๋ค), ํ์ด์๋๊ธ ์ด์ GPU๋ฅผ APU์ฒ๋ผ ์จ๋จน์ ์ ์๋ ํ๋ซํผ์ ์งํฌ์ค์ถ์ ์ HPC GPU๋ค์ NVLINK๋ฅผ ์ง์ํ๋ CPU์ ์ฐ๊ฒฐํ ๊ฒ์ด ์ ์ผํ๊ธฐ ๋๋ฌธ(...)
๊ฒ๋ค๊ฐ ์ธํ ๊ณผ IBM๋ ๋ ์ ํ๋ซํผ์ผ๋ก GPGPU ์์ฅ์ ์ง์ถ ์ค์ด๋ผ๋ ์ ์ ์ฅ๊ธฐ์ ์ผ๋ก HSA ํ๋ก์ ํธ์ ๋ฐ๋ชฉ์ ์ก์ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
๋จ, ์ธํ ๋ HSA ์ง์์ ๋ํ ํฌ์๋ ๊พธ์คํ ํ๋๋ฐ, ์ธํ ์์ GPGPU์ฉ์ผ๋ก ๋ฏธ๋ ๋ ์ ํ๋ซํผ์ธ ์ ์จ ํ์ด๋ ์ํผ์ปดํจํฐ ๊ฐ์ด HPC์ฉ์ด์ง๊ทธ๋๋ง ํฌ๊ธฐํ๋ค.#, ๋ฐ์คํฌํ์ด๋ ๋
ธํธ๋ถ์ ์ธ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค(์ ์ด์ ์ ์จ ํ์ด 0์ธ๋, ํ์ญ์ฌ ๋ผ๋ผ๋น๋ฅผ ์ถ์ ๋ชปํ ์ด์ ์ ํ๋๊ฐ ์์ชฝ ๋ค ๊ฐ๋ณด๋ค๊ฐ ์ด๊ฒ ์๋๊ฐ๋ฒผํ๊ณ ๋ฐฉํฅ์ ํํ๋ค๊ฐ ์๊ธฐ๋ฅผ ๋์ณ์...) ๋ธ๋ก๋์ฐ๋ถํฐ๋ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ์ OpenCL 2.0๋ ์ง์ํ๋ ๋ฑ HSA ์ง์์ด ๋๋ ํ๋์จ์ด ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์บ์ ๊ตฌ์กฐ๋ฅผ ์๊ฐํ๋ฉด, ๋์๊ฐ AMD๋ณด๋ค๋ ์์๋ ๋ชจ์ต์ ๋ณด์ธ๋ค.[19]
AMD ์ญ์ ๋ง๋ฅ ์ ๋๊ณ ์๋ ๊ฑด ์๋๋ผ์, ๋ผ์ด์ 5์ฒ ์๋ฆฌ์ฆ + ๋ผ๋ฐ์จ 6์ฒ ์๋ฆฌ์ฆ๋ถํฐ๋ CPU์ GPU ์ํธ๊ฐ์ ๋ฌด์ ํ ๋ฉ๋ชจ๋ฆฌ ์์ธ์ค๋ฅผ ํตํ ์ฑ๋ฅ ํฅ์์ด ๊ฐ๋ฅํ๋ค๊ณ ํ๋ค. AMD์ RX 6000 GPU, ์ค๋งํธ ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค๋ฅผ ํตํด Ryzen 5000 CPU๋ก ์ฑ๋ฅ ํฅ์
๊ถ๊ทน์ ์ธ ๋จ๊ณ์์๋์ฌ์ฉ์ ์ ์ฅ์์ GPU๋ CPU์ ๋ณด์กฐ ์ฐ์ฐ ์ฝ์ด์ ๋๋ก ์ธ์ํ ์ ๋๋ก GPGPU ํ๋ก๊ทธ๋๋ฐ์ ๋์ด๋๋ฅผ ๋ฎ์ถ๋๊ฒ์ด ๋ชฉํ์ด๋ค.
๊ทธ๋ฌ๋ ๋ชฉ์ ๋งํผ ๊ทธ ํ๊ณ ์ญ์ ๋๋ ทํ๋ค. GPGPU ๋ถ์ผ์์ ์ ๋์ฃผ์์ธ NVIDIA์ CUDA๋ฅผ ๋์ด๋ค์ด์ง ๋ชปํ๋ค๋ ์ [17], ๊ทธ๋ฆฌ๊ณ CPU์ชฝ์์๋ ์ธํ ์ ๋์ด๋ค์ด์ง ๋ชปํด์ ๋น์ฅ ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋จธ๋ค์ด HSA์ ๋ํด์ ์ ์ข์ง ๋ชปํ ์์ ์ด๋ค. GPGPU ๋์ด๋๊ฐ ์๋ฌด๋ฆฌ ๋ฎ์์ง๋ค๊ณ ํด๋ ์ด๋ฅผ ์ด์ฉํ ํ๋์จ์ด๊ฐ ์๋ค๋ฉด ๋ฌด์ฉ์ง๋ฌผ์ด๋ค. ๊ทธ๋ฐ๋ฐ AMD๋ ์นด๋ฒ ๋ฆฌ๋ถํฐ ๋น๋ก์ HSA๋ฅผ ์ง์ํ ์ ๋๋ก, ๋ฆ์ ์๋๋ก HSA๋ฅผ ์ง์ํ๋ ํ๋์จ์ด๋ฅผ ๋ฐํํ๋ค. ์ฌ์ง์ด ์นด๋ฒ ๋ฆฌ์กฐ์ฐจ ๋ด๋ถ ๋ฒ์ค ๊ตฌ์กฐ๊ฐ ๋๋ผ๊ธฐ ์์ฅ์ฒ๋ผ ์ด์ง๋ฌ์์, GPU๋ CPU ์บ์๋ฅผ ๋ค์ฌ๋ค ๋ณผ ์ ์์ง๋ง CPU๋ GPU ์บ์๋ฅผ ๋ค์ฌ๋ค ๋ณผ ์ ์๋ ๋ฑ์ ๋ฌธ์ ๊ฐ ์๊ณ , ์ ์ ์ด๋ฐ ๋ฌธ์ ๊ฐ ๊น๋ํ๊ฒ ํด๊ฒฐ๋ ๋ ์ด๋ธ ๋ฆฟ์ง์ ์์๋ ๋ด๋น์๋ค์ด ๋ชจ๋ ๊ฒฝ์์ฌ๋ก ์ฎ๊ฒจ๊ฐ ๊ฒฝ์ ํ๋ซํผ์ ๋ง๋ค๊ณ ์๋ ๋ฑ ๋๋ ฅ ์์ค๋ก ํ๋ณด ๋ฌธ์์ HSA๋ ์ธ๊ธ์กฐ์ ๋ค ๋นผ๋ฒ๋ฆฌ๊ณ ๊ด๋ง ์ค์ด๋ค(...)# ๊ทธ ์ค ํ ์ฌ๋์ด NVIDIA๋ก ๊ฐ์ ๋ง๋ ๊ฒ NVLINK๋ผ๊ณ . NVLINK๋ ํ์คํ ์ธํ ๊ธฐ์ค 1์ธ๋ 100GB/s (ํํ ๋ํ๋ ์ค), 2์ธ๋ ์๋ฐฉํฅ 300GB/s (ํ ๋ํ๋ ์ค)์ ์ด๋ง์ด๋งํ ๋์ญํญ์ผ๋ก APU์ ์ ์ฌํ ํจ๊ณผ๋ฅผ ๋๋ฆฌ๋ ํ๋ซํผ์ด๋ค. ๋ค๋ง CPU์์ ํต์ ์ ์จ๋จน์ผ๋ ค๋ฉด PowerPC์ ์กฐํฉํด์ผ๋ง ํ๋ค. ์ด๋ก ์ x86 CPU์์ ์กฐํฉ๋ ๊ฐ๋ฅํ๊ธด ํ์ง๋ง CPU์ชฝ์์ ์ง์์ ์ ํ๋ค.[18] ๊ทธ CPU ๋ง๋๋ ํ์ฌ๋ค์ด ๊ฒฝ์ ํ๋ซํผ ํ๋งค์๋ผ๋ ์ฌ์ค์ ์๊ฐํ๋ฉด ์ง๊ทนํ ๋น์ฐํ ์ผ์ด์ง๋ง, ๋ฐ๋๋ก PowerPC๋ ํด๋น ๋ฌธ์์ ๋นํ์ ์ธ ์์ ๋ค์ ๋ณด๋ฉด ์๊ฒ ์ง๋ง ์์ CPU ์ฑ๋ฅ์ผ๋ก ๊ฒฝ์์ด ์ด๋ ค์ด ์ํฉ์ด๋ผ, ์ํผ์ปดํจํฐ์์ ์ฑ๋ฅ ๊ฒฝ์์ ์ํด GPU, ๋ณด์กฐ ํ๋ก์ธ์๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๋ ๋ฑ NVLINK๋ฅผ ์ง์ํ ๋งํ ๋๊ธฐ๊ฐ ์ถฉ๋ถํ ์ํฉ์ด๋ค.
๋๋ฌธ์ 19๋ ํ์ฌ HSA๋ฅผ ๊ฐ์ฅ ์ ์จ๋จน์ ์ ์๋ ํ๋ซํผ์ HSA๋ฅผ ์ฒ์ ์ถ์งํ AMD๊ฐ ์๋๋ผ, ์ญ์ค์ ์ด๊ฒ๋ ๊ธฐ์ ์ ์ผ๋ก๋ HSA๊ฐ ์๋(...) PowerPC ํ๋ซํผ ๊ธฐ๋ฐ์ CUDA์ด๋ค. ์ธํ ์ GPU์ฑ๋ฅ์ด ๋ฎ๊ณ , AMD๋ ์กฐ์ฉํ ์ ๊ณ ๋์ธ์ ๋ฌป์ด๊ฐ๋ ๋ถ์๊ธฐ์ด๊ณ (๋๊ตฌ๋ ์ด์ชฝ APU๋ ์ธํ ๋ณด๋จ ๊ณ ์ฑ๋ฅ์ผ ๋ฟ, ์ฌ์ ํ GPU ์ฑ๋ฅ์ด ๋ฎ์ ์ ๊ฐํ๊ณผ ๋ชจ๋ฐ์ผ ์ ํ๋ค๋ง ๋ด๋๊ณ ์๋ค), ํ์ด์๋๊ธ ์ด์ GPU๋ฅผ APU์ฒ๋ผ ์จ๋จน์ ์ ์๋ ํ๋ซํผ์ ์งํฌ์ค์ถ์ ์ HPC GPU๋ค์ NVLINK๋ฅผ ์ง์ํ๋ CPU์ ์ฐ๊ฒฐํ ๊ฒ์ด ์ ์ผํ๊ธฐ ๋๋ฌธ(...)
๊ฒ๋ค๊ฐ ์ธํ ๊ณผ IBM๋ ๋ ์ ํ๋ซํผ์ผ๋ก GPGPU ์์ฅ์ ์ง์ถ ์ค์ด๋ผ๋ ์ ์ ์ฅ๊ธฐ์ ์ผ๋ก HSA ํ๋ก์ ํธ์ ๋ฐ๋ชฉ์ ์ก์ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
๋จ, ์ธํ ๋ HSA ์ง์์ ๋ํ ํฌ์๋ ๊พธ์คํ ํ๋๋ฐ, ์ธํ ์์ GPGPU์ฉ์ผ๋ก ๋ฏธ๋ ๋ ์ ํ๋ซํผ์ธ ์ ์จ ํ์ด๋ ์ํผ์ปดํจํฐ ๊ฐ์ด HPC์ฉ์ด์ง
AMD ์ญ์ ๋ง๋ฅ ์ ๋๊ณ ์๋ ๊ฑด ์๋๋ผ์, ๋ผ์ด์ 5์ฒ ์๋ฆฌ์ฆ + ๋ผ๋ฐ์จ 6์ฒ ์๋ฆฌ์ฆ๋ถํฐ๋ CPU์ GPU ์ํธ๊ฐ์ ๋ฌด์ ํ ๋ฉ๋ชจ๋ฆฌ ์์ธ์ค๋ฅผ ํตํ ์ฑ๋ฅ ํฅ์์ด ๊ฐ๋ฅํ๋ค๊ณ ํ๋ค. AMD์ RX 6000 GPU, ์ค๋งํธ ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค๋ฅผ ํตํด Ryzen 5000 CPU๋ก ์ฑ๋ฅ ํฅ์
6. HSA ์ง์ ํ๋ก๊ทธ๋จ[ํธ์ง]
[1] ๋จ, OpenCL 2.0์ ํตํ HSA ์ฌ์ฉ์, ์ ์ ์ง์์ด๋ณด๋ค๋ ๊ผผ์์ ๊ฐ๊น๊ณ , ์ ์ฝ๋ ์ฌํ๋ค๊ณ ํ๋ค.
[2] ๋ค๋ฆ ์๋ ARM์ด HSA ์ฌ๋จ์ ์ค๋ฆฝ ๋ฉค๋ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
[3] AMD ๊ธฐ์ค์ผ๋ก, ATI ์ธ์ ๋น์๋ถํฐ ๊ณํํ๊ณ ์์๋ค.
[4] ๋งํฌํ ํ์ฝ์ฆ ๊ฒ์ํ ๊ฒ์ ๊ฒฐ๊ณผ์ ๊ฒฝ์ฐ, 09๋
๋~12๋
๋ ์ด๊น์ง 'Fusion APU'๋ผ๋ ํํ์ด ๋ง์ด ์ฌ์ฉ๋์๋๋ฐ, 12๋
๋ ์ค๋ฐ๋ถํฐ ์ ์ฌ๋ผ์ก๋ค. ๋ฐ๋ฉด์ ๊ฐ์ ๊ฒ์ํ์์ HSA ๊ธฐ์ฌ๋ 12๋
๋ ๋ง๋ถํฐ ๋์จ๋ค.
[6] NUMA๋ผ๊ณ ๋ถ๋ฅด๋๋ฐ, '์๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ผ๋ก ๋๋ ๊ฑฐ = NUMA'๊ฐ ์๋๋ค. ํ๋์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ผ๋ก ๋์ด ์์ด๋ ์ด๋ค CPU core๊ฐ ์ด๋ค ์ฃผ์๋ฅผ ์ ๊ทผํ๋๋์ ๋ฐ๋ผ latency / bandwidth์์ ์ฑ๋ฅ์ฐจ์ด๊ฐ ๋๋ ๊ฒฝ์ฐ์๋ NUMA๊ฐ ๋๋ค. ๋ฐ๋ผ์ ์์คํ
DDR ๋ฉ๋ชจ๋ฆฌ์ ๊ทธ๋ํฝ ์นด๋์ ์ธ์ฅ GDDR ๋ฉ๋ชจ๋ฆฌ์ ์์ญ์ด ํ๋๋ก ํฉ์ณ์ง๋ผ๋ DDR๊ณผ GDDR ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ก ํตํฉ๋์ง ์๋ ์ด์, CPU์์ DDR ๋ฉ๋ชจ๋ฆฌ๋ก ์ ๊ทผํ๋ ๊ฒ๊ณผ ๊ทธ๋ํฝ ์นด๋์ GDDR ๋ฉ๋ชจ๋ฆฌ๋ฅผ PCIe ๋ฒ์ค๋ฅผ ํตํด์ ์ ๊ทผํ๋ ๊ฒ๊ณผ๋ latency / bandwidth์์ ์ฑ๋ฅ์ฐจ์ด๊ฐ ๋ ์๋ฐ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ NUMA๋ก ๋จ๋๋ค.
[7] ๊ฐ๋จํ๊ฒ ๋งํด์, ์๋น๋์์ CUDA์ ๋น์ทํ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
[8] ์ฆ, ์๊ธ ์ฌ์ฉ๋๋ ๋ฐฉ์์ ์ฃผ ๋ฉ๋ชจ๋ฆฌ์ GPU ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ๋ ๋ฐ์ดํฐ์ ์ผ์น ์ฌ๋ถ๋ฅผ ๋๊ตฐ๊ฐ๊ฐ ํ์ธํด ์ฃผ์ด์ผ ํ๋ค. ๊ฒ๋ค๊ฐ ์ต์ ํ๋ฅผ ์ํด์๋ GPU ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ด๋ ์ ๋๊น์ง ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ์ฒ๋ฆฌํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ์ง์ ํ๋ก๊ทธ๋๋จธ๊ฐ ํ์ธํ๊ณ ์ฌ๊ธฐ์ ๋ง์ถ์ด ์ฒ๋ฆฌ ํ ๋ฐ์ดํฐ์์ ์กฐ์ ํด์ผ ํ๋ค. ๊ทธ๋ฐ๋ฐ HSA์๋ ๊ทธ๋ฌํ ์์
์ ๋ถํ์ํ๋ค.
[9] ๋ง์น RAID์ฒ๋ผ ๋ฑ
ํฌ ๊ทธ๋ฃน์ ๋ง๋ค์ด ๋น์ฝ์ ์ธ ์๋ ํฅ์์ ๊ฐ์ ธ์๋ค. ํ์ง๋ง GDDR์ด ์ผ๋ฐ DRAM์ ๋์ฒดํ ์ ์๋ค๋ ๊ฒ์ ์๋๋ค. ์ด๋๊น์ง๋ ๊ทธ๋ํฝ ์ฐ์ฐ์ ํ์ ๋ ์ฑ๋ฅ์ด๋ค. ๊ทธ๋ฐ๋ฐ HBM์ APU๋ ์๋ฒ์ฉ CPU์ ๋ฃ๋๋ค๋ ์๋ฌธ์ด ๋ค๋ฆฌ๋ ๊ฒ์ผ๋ก ๋ณด์ ์ ๋ง๋ก ์ผ๋ฐ์ ์ธ DRAM์ ๋์ฒดํ ์ง๋ ๋ชจ๋ฅธ๋ค. ๋ฌผ๋ก ํ์ฌ์ ๋์ผํ ์์ค์ ํผํฌ๋จผ์ค๋ฅผ ๋ฐํํ๋ ค๋ฉด ๊ธฐ์ ์ ์ง๋ณด์ ํจ๊ป ์ต์ ํ ์์
์ด ๋๋ฐ๋์ด์ผ ํ ๊ฒ์ด๋ค.
[10] ๋ฌผ๋ก ํ๋ ์ด์คํ
์ด์
4์ฒ๋ผ ์ผ๋ฐ DRAM์ด ์๋ GDDR5๋ฅผ ์ฃผ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฌ์ฉํ๋ค๋ฉด ๊ฐ๋จํ๊ฒ ํด๊ฒฐ๋๊ฒ ์ง๋ง ๊ฒ์ ์ฝ์์ด ์๋ Windows๋ผ๋ ๋ฒ์ฉ ์ด์์ฒด์ ๋ฅผ ์ฌ์ฉํ๋ ์ผ๋ฐ PC์ DRAM์ GDDR๋ก ๋ฐ๊พธ๋ ๊ฒ์ ํ์ฌ๋ก์๋ ๋งค์ฐ ์ด๋ ต๋ค.
[11] ํ์ค์ ์ธ ํ๊ณ๋ก, ์์ง์ ๋ด์ฅ ๊ทธ๋ํฝ์๋ง HSA๊ฐ ์ ์ฉ๋์ง๋ง, HSA๋ ์ธ์ฅ GPU์ ๊ทธ๋ํฝ ๋ฉ๋ชจ๋ฆฌ์์ ํตํฉ๋ ์ถ์งํ๊ธฐ์ ์๋ฐํ๋ ํ๋ฆฐ ๋ง์ด๋ค.
[12] ์ฃผ ๋ฉ๋ชจ๋ฆฌ์ ์๋๊ฐ GPU ์ฒ๋ฆฌ์๋๋ฅผ ๋ชป๋ฐ๋ผ์ค๋ค๋ณด๋ ๋ฏธ๋ฆฌ ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๋ฅผ GPU ๋ฉ๋ชจ๋ฆฌ์ ๋ณด๋ด์ค๋ค. ์ด๋ฅผ 'ํ๋ฆฌ๋ก๋ฉ'์ด๋ผ๊ณ ํ๋๋ฐ, ์์ธํ ๋ด์ฉ์ ๋ํด์๋๋ ๋ก๋ฉํญ๋ชฉ์ 2.2๋ฒ '์ฌ๋ฆฌ์ค ๋ฐฉ์' ์ ์ฐธ์กฐํ์.
[13] ๋ฌผ๋ก OS๊ฐ ์ํํ๋ ๋ชจ๋ ์์
์ CPU๊ฐ ๋ด๋นํ๋ค. ์ฆ, GPU๋ฅผ ํ์ฉํ๊ธฐ ์ํด์ GPU๋ก ์ ๊ทผํ ๋๋ง๋ค CPU๊ฐ ์์ฒญ๋ ์์
์ ์ฒ๋ฆฌํ๋ ์
์ด๋ค.
[14] ๊ฐ๋จํ๊ฒ ๋งํด์, ์ ํ๋ฆฌ์ผ์ด์
์ด ์ ๊ทผํด์๋ ์๋๋ ์์น์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ์ ๊ทผํ๋ฉด ์์คํ
์ด ๋ค์ด๋์ด ๋ฒ๋ฆฐ๋ค. ์ด๋ฅผ ๋ฐฉ์ง ํ๊ธฐ ์ํด์ OS๊ฐ ๋ชจ๋ ํ๋์จ์ด์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ๊ด๋ฆฌํ๋ค. ๊ทธ๋ผ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ ๊ทผํ๋ฉด OS๋ ๋ธ๋ฃจ์คํฌ๋ฆฐ ๊ฐ์ ์ปค๋ ํจ๋์ ์ผ์ผํจ๋ค. ์ฆ, OS๋ฅผ ๋ฐฐ์ ํ ์ ๊ทผ ๋ฐฉ์์ ์ ์ฌ์ ์ผ๋ก ์ปค๋ ๋ถ์์ ์ ์ด๋ํ ๊ฐ๋ฅ์ฑ์ ๋ดํฌํ๊ณ ์๋ค.
[15] ๊ทธ๋๋ ARM์์๋ ์ฐธ์ฌํ๋ ์๋จ์ ๊ธ๋ฌผ.
[16] ์๋ฅผ ๋ค์ด, AMD GPU/APU๋ก ๋์ํ๋ ๋ณ๋ ฌ ์ปดํจํ
ํ๋ก๊ทธ๋จ์ ๋ง๋ค์๋ค๋ฉด ์ด๊ฒ์ด 'ARM + POWER VR'๋ก๋ ํ๋ก๊ทธ๋จ ์์ ์์ด ๋์๊ฐ ์ ์๋ค๋ ๊ฒ์ด๋ค.
[17] CUDA๋ ๋ํ์ ์ธ ํ์ ํ๋ซํผ์ด๋ค. NVIDIA GPU๋ก๋ง ๋์๊ฐ๋ ๋
์์ด๋...
[18] ๋์ GPU๊ฐ ํต์ ์ ์จ๋จน๋ ๊ฑด ์ง์ฅ ์๊ธฐ ๋๋ฌธ์ GeForce 20๋ถํฐ๋ SLI๋ฅผ ๋์ฒดํ๋ ์์ผ๋ก ์จ๋จน๊ณ ์๋ค.
[19] AMD์๋ ์นด๋ฆฌ์กฐ๊น์ง๋ CPU์ GPU๊ฐ ๊ณต์ ํ๋ ์บ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ค. ๊ทธ๋์ ํด๋น ๊ธฐ๋ฅ์ด ํ์ํ AMD ํ์ HSA ์ฑ๋ฅ ์ฐ๊ตฌ๋ HSA์ L3 ์บ์๋ฅผ ๋ชจ๋ ๊ฐ์ง ๊ฐ์์ APU๋ฅผ ์๋ฎฌ๋ ์ด์
ํด์ ์ฐ๊ธฐ๋ ํ๋ค(์ฐ๊ตฌ ๋น์์ ์ธํ
์์๋ HSA๋ฅผ ์ง์ํ์ง ์์๋ค.).