๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ

[tbd] ๋ณ‘๋ ฌ ์ปดํ“จํŒ… Parallel Computing

by ๐“ƒ๐’ถ๐“ƒ๐’ถ๏ฝก 2015. 3. 5.

CPU์™€ GPU ๊ฐ„์˜ ์„ฑ๋Šฅ ์ฐจ์ด๊ฐ€ ์กด์žฌํ•˜๋Š” ์ด์œ ๋Š” ๋‘ ๊ฐ€์ง€ ์นฉ์ด ๊ทผ๋ณธ์ ์œผ๋กœ ์ƒ์ดํ•œ ๋ชฉ์ ์„ ์—ผ๋‘์— ๋‘๊ณ  ์„ค๊ณ„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. CPU๋Š” ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰๋˜๋Š” ์ผ๋ จ์˜ ๋ช…๋ น์–ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋‹ค. ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋”ฉ(Multithreading) ๊ธฐ๋Šฅ๊ณผ ๋‹ค์ค‘ ์ฝ”์–ด์˜ ์ถœํ˜„์œผ๋กœ CPU์—์„œ๋„ ์ƒ๋‹นํ•œ ์ˆ˜์ค€์˜ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‚˜, ์—”๋น„๋””์•„๋‚˜ AMD๊ฐ€ ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ ๊ฐ™์€ ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์— ๋Œ€ํ•ด ๊ฐ–๋Š” ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ์— ๋น„ํ•˜๋ฉด ๋ฏธ๋ฏธํ•œ ์ˆ˜์ค€์ด๋‹ค.

 

์›๋ž˜ ์ˆ˜ ์ฒœ ๊ฐœ์˜ ๋‹ค๊ฐํ˜•์„ ๊ทธ๋ฆฌ๊ณ  ์‹ค๊ฐ๋‚˜๋Š” ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์„ ์œ„ํ•ด ์งˆ๊ฐ์„ ๋งคํ•‘ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋˜ GPU๋Š” ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ ๋ณ‘๋ ฌ ํ”„๋กœ์„ธ์„œ์ด๋‹ค. ๊ฐœ๊ฐœ GPU ํ”„๋กœ์„ธ์„œ ์ฝ”์–ด๋Š” CPU ์ฝ”์–ด๋ณด๋‹ค ๋” ๋‹จ์ˆœํ•˜๊ณ  ๋œ ๊ฐ•๋ ฅํ•˜์ง€๋งŒ ์ฝ”์–ด i7 960 ์ƒ์—๋Š” ๊ฒจ์šฐ 4๊ฐœ์˜ ์ฝ”์–ด๊ฐ€ ๋“ค์–ด์žˆ๋Š”๋ฐ ๋น„ํ•ด ์—”๋น„๋””์•„์˜ ์ตœ์‹  GPU์—๋Š” ์ฝ”์–ด๊ฐ€ ์ˆ˜ ๋ฐฑ ๊ฐœ๋‚˜ ๋“ค์–ด์žˆ๋‹ค. ๋™์‹œ์— ์ˆ˜ ๋ฐฑ ๊ฐœ์˜ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์œผ๋กœ ์ธํ•ด GPU๋Š” ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ์˜ ์ด์ ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค.

 

GPU Computing

 

ํ”„๋กœ์„ธ์Šค ์ค‘ ์—ฐ์‚ฐ์ง‘์•ฝ์ ์ธ ๋ถ€๋ถ„์„ GPU๋กœ ๋„˜๊ธฐ๊ณ  ๋‚˜๋จธ์ง€ ์ฝ”๋“œ๋งŒ์„ CPU์—์„œ ์ฒ˜๋ฆฌ. GPU ๊ฐ€์† ์ปดํ“จํŒ…

GPU: ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ์šฉ, ์†Œํ˜•, thousands of cores

CPU: multiple cores. ์ง๋ ฌ์ฒ˜๋ฆฌ์šฉ

 

 

nVidia CUDA (Compute Unified Device Architecture)

 

CUDAยฎ: parallel computing platform & programming model

GPGPU ๊ธฐ์ˆ : CUDA GPU ์•ˆ์˜ ๋ช…๋ ฌ์…‹๊ณผ ๋Œ€์šฉ๋Ÿ‰ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ. ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ์— ํ•œ ๊ฐ€์ง€ ์—ฐ์‚ฐ์„ ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ๋‹จ์ˆœํ™”๋œ ์ฝ”์–ด๋ฅผ ๋‹ค๋Ÿ‰ ํƒ‘์žฌ.

SIMD(Single Instruction Multiple Data) ํ˜•ํƒœ ๋ณ‘๋ ฌํ™” ๊ฐ€๋Šฅํ•œ ์—ฐ์‚ฐ

GPU ์ „์šฉ ํ•จ์ˆ˜ (์ปค๋„) ๋ฅผ CPU์—์„œ ํ˜ธ์ถœํ•˜๋Š” ์‹

 

- nVidia GTX graphic card CUDA Core ๊ฐœ์ˆ˜

 

 

OpenMP (Open Multi-Processing)

 

๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๋‹ค์ค‘ ์ฒ˜๋ฆฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ API

๋ณ‘๋ ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ชจ๋ธ

์„ฑ๋Šฅ/ํ™•์žฅ์„ฑ/์ด์‹์„ฑ/ํ‘œ์ค€์„ฑ

ํ‘œ์ค€ ์ŠคํŽ™