ํ์ค์ double์ด๋ผ float๊ฐ double์ ๋นํด ์ ๋ฐ๋๋ ์๋์์ ๋๋ฆฐ๋ฐ float๋ฅผ ์ฐ๋๊ฑฐ ๋ณด๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ 4๋ฐ์ดํธ๋ผ ์ฐ๋ ๊ฒ ๊ฐ์๋ฐ ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ค ์ ๋๋ฌธ์ ์ฐ๋๊ฑด์ง ๊ถ๊ธํด์์
๊ตณ์ด ์ธ ํ์๊ฐ ์๊ณ ๋ช ๋ฐ์ดํธ ์ก์๋จน๋๊ฒ ์์๋ณด์ฌ๋ ๋ฌด์๋ชปํจ
๋ฐฐ์ด ๋ฆฌ์คํธ ์ฐจ์ด์ ์๊ณ ๊ตฌ๋ณํด์ ์ธ์ค์? ๊ทธ๋ฌ๋ฉด ๊ทธ๊ฒ ๋ต์
๋ฐฐ์ด์ ์ฐ์๋ ๊ณต๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ณ Random Access๊ฐ ๊ฐ๋ฅํ๊ณ ๋ฆฌ์คํธ๋ ๋ค์ ์์์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ ์ฐจ์ด ์๋๊ฐ์
๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ ๊ณต๋ถํ์ ์ฝ๋ ๋ผ์ธ๋ฐ์ด๋ผ์ธ์ผ๋ก ์คํ๋ ๋ ๋ง๋ค ๋ฉ๋ชจ๋ฆฌ์์ ์ด๋ค์ผ์ด ์ผ์ด๋๋์ง ์ด๊ฑด ์ฝ๋ฉํ๋ ค๋ฉด ๊ธฐ๋ณธ์ด์ ํ์์
๊ทธ๋ผ ์ด๋ค ์ํฉ์์ ๋ฐฐ์ด์ด ์ข๊ณ ์ด๋ค ์ํฉ์์ ๋ฆฌ์คํธ๊ฐ ์ข์? ๊ทธ๊ฑฐ ๋ตํ ์์์ผ๋ฉด ์๋ฌธ ๋๋์์
Random Access๊ฐ ํ์ํ ๋๋ ๋ฐฐ์ด์, ์ฝ์ /์ญ์ ๊ฐ ์์ฃผ ์ผ์ด๋๊ฑฐ๋ ์ํํ๋ฉด์ ์ญ์ ํ๋ ๊ฒฝ์ฐ์๋ ๋ค์ realloc์ ํด์ค์ผ ํ๋ ๋ฐฐ์ด๋ณด๋ค๋ ๋ฆฌ์คํธ๋ฅผ ์จ์ผ ํ๋ ๊ฒ ๊ฐ์๋ฐ ์ ์ค๋ ฅ์ด ๋ถ์กฑํด์ ๋ช ํํ๊ฒ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.. ์ฃ์กํ์ง๋ง ์กฐ๊ธ๋ง ๋ ์์ธํ ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
๋ ์ ์ผ๋ก float๋ 4๋ฐ์ดํธ๊ณ double ์ 8๋ฐ์ดํธ๋ผ๊ณ ํ๋๋ฐ ์ค์ ๋ก ๊ฐ์ 8๋ฐ์ดํธ์ฉ์ด๋ ์ ์ฅํ ์ผ์ด ์ผ๋ง๋ ์์๊น? ์์ด๋ ์ ๋ง ํน์ ๋ถ์ผ์์๋ง ๊ทธ๋ ๊ณ ๊ทธ ๋ถ์ผ์์์กฐ์ฐจ ์ ๋ง ์ ์ ๋น๋์ผ๊บผ์ ๊ฐ ์ ๋ฐ๋๊ฐ ์ ๋ง ์ค์ํ๊ณ ํฐ๊ฐ์ ๊ฐ์ง๊ณ ๋ญ ํ๋ค๋ฉด ๋น์ฐํ float ๋ง๊ณ double์ฐ๊ฒ ์ง. ๊ทผ๋ฐ ๊ทธ๊ฒ ์๋๋ผ๋ฉด 4๋ฐ์ดํธ ๋ณ์์ฐ๋๊ฒ ๋ซ์ง
์ด ๋๊ธ์ ๊ฒ์๋ฌผ ์์ฑ์๊ฐ ์ญ์ ํ์์ต๋๋ค.
์ํ ์ ๊ฐ ๊ฒ์ ๋ถ์ผ๋ ์๋๋ฐ PSํ ๋ float๊ฐ ํ์ค์ด ์๋๋ผ double๋ณด๋ค ๋๋ฆฌ๋ค๊ณ ์ฐ์ง ๋ง๋ผ๊ณ ๋ค์ ๊ฒ ๋ ์ฌ๋ผ์์... ์์ง ๊ฐ๋ฐ ๊ฒฝํ์ด ๋ถ์กฑํ๋ค๋ณด๋ ๋ชฐ๋๋ค์ ์ค๋๋ ๋ ํ๋ ๋ฐฐ์๊ฐ๋๋ค ๊ฐ์ฌํฉ๋๋ค
๋๊ฐ ํ๋ง๋ ๋ง๋๋ฐ ๊ทธ๊ฑด ๋ฐฐ์ด ๋ฆฌ์คํธ์ ๋ฌผ๋ฆฌ์ ํน์ง์ด๊ณ ๋ฐฐ์ด, ๋ฆฌ์คํธ๋ฅผ ๊ตฌ๋ถํด์ ์ฌ์ฉํ๋ ค๋ฉด ๊ฐ์ฅ ์ค์ํ๊ฒ ์ ์ฅํ ๋ฐ์ดํฐ์ ์๊ฐ ์ ํด์ ธ ์๋๋์์ ์ ์ ์ธ ๋ฐ์ดํฐ์ฌ์ผํ๋ค๋๊ฑฐ์ใ ใ ๋ฐฐ์ด์ ์ ์ ์ธ ์๋ฃ๊ตฌ์กฐ๊ธฐ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ค๋ฉด ์๋ก์ด ๋ฐ์ดํฐํฌ๊ธฐ๋งํผ ์๋ก ๋ฐฐ์ด์ ์ ์ธํ๊ณ ๊ทธ๊ณต๊ฐ์ ๋ณต์ฌ๋ถํ๋ฃ๊ธฐํด์ผํจ
๊ทผ๋ฐ ๋ฆฌ์คํธ๋ ๋๋ง๋๋ก ๋ฐ์ดํฐ๋ผ๋ฆฌ ์๋ก ์ด๋๋ ์ค๋ก ์ฐ๊ฒฐ(?) ๊ฐ๋ฅดํค๊ฒ ๋์ด์๊ธฐ๋๋ฌธ์ ๋ฐ์ดํฐ ์์ ์ ๊ทธ๋ฅ ์ฐ๊ฒฐ์ ๋๊ณ ์ด์ด์ฃผ๊ณ ํ๊ธฐ๋ง ํ๋ฉด ๋๊ธฐ๋์ ๋์ ์ธ ๋ฐ์ดํฐ์ ์ ๋ฆฌํจ
๊ทธ๋์ ๋ฐฐ์ด ๋ฆฌ์คํธ๋ float double ์ด๋ ๋ญ ์๊ด์ด๋ผ๋ ๊ฑฐ์?
๋ฐ์ดํฐ ๊ณต๊ฐ์ ๋ํ ์ด์ผ๊ธฐ์์ ๋ฆฌ์คํธ์์ฐ๊ณ ๊ทธ๋ฅ ์ต์ด์ ๋ฐฐ์ด๊ณต๊ฐ์ ํฌ๊ฒ ์ก์๋๊ณ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ํด๋ณด์. ์๋ฅผ ๋ค์ด ์ฒ์๋ถํฐ ๋ฐฐ์ด ๊ณต๊ฐ์ 1000๊ฐ ์ก์๋๋๊ฑฐ์ ๊ทผ๋ฐ ์ด๋ฌ๋ฉด ๋ฌธ์ ์ ์ด ๋ญ์? ๋ฐ์ดํฐ๊ฐ 1๊ฐ ๋ค์ด์๋ค๊ณ ์น๋ฉด 999๊ฐ์ ๊ณต๊ฐ์ ๋ญ๋น์๋์ผ ๊ทธ๊ฑฐ ๋๋ฌธ์ ๋์จ ๋ง์
๊ฒ์ ๋ง๋ค ๋ ๊ตณ์ด float๋ณด๋ค ๋ ์ ํํ ๊ฐ์ ์ฌ์ฉํ ์ด์ ๋ฅผ ๋ชป ๋๋ผ๊ฒ ์.
๊ธฐ๋ณธ์ ์ผ๋ก ๊ฒ์ ํ๋ก๊ทธ๋๋ฐ์ ์ ๋ฐ๋ ๋ณด๋ค๋น ๋ฅด๊ฒ ์ ์ฌํ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋๊ฑฐ๋ผ ์๋๊ฐ ์ข์์ชฝ์ผ๋ก ํด์ผ์ง, ๊ทธ๋ฆฌ๊ณ ์ง์ง๋ก ์ด์ ๋ฐํ๊ฒ ํด์ผํ๋ ๊ฒฝ์ฐ๋ ์๋ ์ ๊ฒฝ์์ฐ๊ณ ๊ทธ๋ฅ ๋ฌธ์์ด๋ก ์ซ์๋ง๋ค์ด์ ์์ซ์ ๊น์ง ์ ๋๊ฒ ๋ง์ง, ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ํฝ์นด๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก float4๊ฐ์ฉ ๋ฌถ์ด์ ์ฌ์ฉ
์๋๋ double์ด ํ์ค ๋ฐ์ดํฐํ์ ์ด๋ผ float๋ณด๋ค double์ด ๋ ๋น ๋ฅด์์์
double์ด ๋ ๋น ๋ฅธ๊ฐ์ ๋ํด์๋ ๋ญ๋ผ ๋ตํด์ค์ผํ ์ง ๋ชจ๋ฅด๊ฒ ์. ์์ฆ CPU์์ ๊ทธ๊ฒ ๊ทธ๋ ๊ฒ ์ฐจ์ด๋๋ ์ถ๊ธฐ๋ ํ๊ณ . ๊ทธ๋ฆฌ๊ณ SIMD์์ double์ 2๊ฐ, float์ ์์ ๋งํ๋๋ก 4๊ฐ์ฉ ๋ฌถ์ด์ ๊ณ์ฐ ๊ฐ๋ฅํจ.
Cpu์์ ๋๋ธ์ด ๋๋นจ๋ผ์ก๋ค๋๊ฒ ๋์ถฉ ์ผ์ถ ๋ง๋ ์๋ฆฌ์ธ๊ฐ๋ณด๋ค? ๊ทธ๊ฑฐ์ ๋ํ ์ ๋ณด๋ ๊ธ๋งํฌ ์ฌ๋ ค ์ค ์์์ด? ์๋๋ฉด ๊ฒ์ํ๋ฉด ๋์ค๋ ํค์๋๋