OpenCL ์ปค๋ ์ปดํ์ผ๋ฌ์ ๊ตฌํ์ LLVM์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ผ๋ฉฐ Clang์ OpenCL C์ ํ๋ฐํธ ์๋๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ ์ ํ ์ด์์ฑ๊ณผ ์ฑ๋ฅ์ ๋ณด์ฅํ๊ธฐ ์ํด OpenCL ์ปค๋ ์ปดํ์ผ๋ฌ๋ VLIW, ์ํผ์ค์นผ๋ผ, SIMD, SIMT, ๋ฉํฐ ์ฝ์ด ๋ฐ ๋ฉํฐ ์ค๋ ๋ฉ๊ณผ ๊ฐ์ ์ฝ๋ ์คํ์ ๋ณ๋ ฌํํ๊ธฐ ์ํด ๋ค์ํ ํ๋์จ์ด ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ ์กฐํฉ ๊ธฐ๋ฅ์ ์์ฑํ ์ ์์ต๋๋ค. ICD ๋๋ผ์ด๋ฒ ์ง์ ๊ฐ๋ฅ
(์ค์น ๊ฐ๋ฅํ ํด๋ผ์ด์ธํธ ๋๋ผ์ด๋ฒ). CPU, ASIP(TCE/TTA), GPU ๊ธฐ๋ฐ ์ํคํ
์ฒ๋ฅผ ํตํ ์๋์ ๋ณด์ฅํ๋ ๋ฐฑ์๋๊ฐ ์์ต๋๋ค.
ะ
- ์ถ๊ฐ ์ง์
LLVM/ํด๋ญ 9.0 . 6.0 ์ด์ LLVM ๋ฒ์ ์ ๋ํ ์ง์์ ์ค๋จ๋์์ต๋๋ค. - ์ค๊ฐ ์ฝ๋ ํํ์ ํฅ์๋ CPU ๊ธฐ๋ฐ ๊ตฌํ
๊ทผ์ฌ ะธSPIR-V (Vulkan API์์ ์ฌ์ฉ๋จ) ๊ทธ๋ํฝ ๋ฐ ๋ณ๋ ฌ ์ปดํจํ ์ฉ ์ ฐ์ด๋๋ฅผ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. - ๋ฉ๋ชจ๋ฆฌ ๋งคํ(mmap) ์ ์ด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ OpenCL 1.2 ํ๋์จ์ด ๊ฐ์๊ธฐ๋ฅผ ์ง์ํ๊ธฐ ์ํด ์์ ์ธํ๋ผ์ ํจ๊ป pocl-accel ๋๋ผ์ด๋ฒ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ๋๋ ํฐ๋ฆฌ์ ์ฐ๊ฒฐ๋์ง ์์(์ฌ๋ฐฐ์น ๊ฐ๋ฅ) pocl ์ค์น๋ฅผ ๊ตฌ์ถํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru