์ด๊ฒ์ ์ต์ ๋ฆด๋ฆฌ์ค๋ฅผ UniSIMD-v1.1.0c.zip์ผ๋ก ๋ค์ด๋ก๋ํ ์ ์๋ UniSIMD-์ด์ ๋ธ๋ฌ๋ผ๋ Windows ์ฑ์ ๋๋ค. ์ํฌ์คํ ์ด์ ์ฉ ๋ฌด๋ฃ ํธ์คํ ์ ๊ณต์ ์ฒด์ธ OnWorks์์ ์จ๋ผ์ธ์ผ๋ก ์คํํ ์ ์์ต๋๋ค.
OnWorks์ ํจ๊ป UniSIMD-์ด์ ๋ธ๋ฌ๋ผ๋ ์ด ์ฑ์ ๋ฌด๋ฃ๋ก ๋ค์ด๋ก๋ํ์ฌ ์จ๋ผ์ธ์ผ๋ก ์คํํ์ญ์์ค.
์ด ์ฑ์ ์คํํ๋ ค๋ฉด ๋ค์ ์ง์นจ์ ๋ฐ๋ฅด์ธ์.
- 1. ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ PC์ ๋ค์ด๋ก๋ํ์ต๋๋ค.
- 2. ํ์ผ ๊ด๋ฆฌ์ https://www.onworks.net/myfiles.php?username=XXXXX์ ์ํ๋ ์ฌ์ฉ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
- 3. ์ด๋ฌํ ํ์ผ ๊ด๋ฆฌ์์์ ์ด ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ๋ก๋ํฉ๋๋ค.
- 4. ์ด ์น์ฌ์ดํธ์์ ๋ชจ๋ OS OnWorks ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์์ํ์ง๋ง ๋ ๋์ Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์์ํฉ๋๋ค.
- 5. ๋ฐฉ๊ธ ์์ํ OnWorks Windows OS์์ ์ํ๋ ์ฌ์ฉ์ ์ด๋ฆ์ผ๋ก ํ์ผ ๊ด๋ฆฌ์ https://www.onworks.net/myfiles.php?username=XXXXX๋ก ์ด๋ํฉ๋๋ค.
- 6. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ด๋ก๋ํ์ฌ ์ค์นํฉ๋๋ค.
- 7. Linux ๋ฐฐํฌ ์ํํธ์จ์ด ์ ์ฅ์์์ Wine์ ๋ค์ด๋ก๋ํฉ๋๋ค. ์ค์น๊ฐ ์๋ฃ๋๋ฉด ์ฑ์ ๋ ๋ฒ ํด๋ฆญํ์ฌ Wine๊ณผ ํจ๊ป ์คํํ ์ ์์ต๋๋ค. ์ธ๊ธฐ ์๋ Windows ํ๋ก๊ทธ๋จ ๋ฐ ๊ฒ์์ ์ค์นํ๋ ๋ฐ ๋์์ด ๋๋ Wine์ ํตํ ๋ฉ์ง ์ธํฐํ์ด์ค์ธ PlayOnLinux๋ฅผ ์ฌ์ฉํด ๋ณผ ์๋ ์์ต๋๋ค.
Wine์ Linux์์ Windows ์ํํธ์จ์ด๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ด์ง๋ง Windows๊ฐ ํ์ํ์ง ์์ต๋๋ค. Wine์ ๋ชจ๋ Linux ๋ฐ์คํฌํ์์ ์ง์ Windows ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๋ ์คํ ์์ค Windows ํธํ์ฑ ๊ณ์ธต์ ๋๋ค. ๋ณธ์ง์ ์ผ๋ก Wine์ Windows๊ฐ ํ์ํ์ง ์๊ณ ๋ชจ๋ Windows ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๋๋ก Windows๋ฅผ ์ฒ์๋ถํฐ ์ถฉ๋ถํ ๋ค์ ๊ตฌํํ๋ ค๊ณ ํฉ๋๋ค.
UniSIMD-์ด์ ๋ธ๋ฌ
Ad
๊ธฐ์
UniSIMD ์ด์
๋ธ๋ฌ๋ ์ ์ฒด์ ๊ฑธ์ณ ํตํฉ๋ ๊ณ ๊ธ C/C++ ๋งคํฌ๋ก ์ด์
๋ธ๋ฌ ํ๋ ์์ํฌ์
๋๋ค.
ARM, MIPS, POWER ๋ฐ x86 ์ํคํ
์ฒ. BASE์
๋ช
ํํ๊ฒ ์ ์๋ ๊ณตํต API๊ฐ ์๋ SIMD ๋ช
๋ น์ด ์ธํธ๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์
๋ก์ง
์ฝ๋ ๋ณต์ ์์ด ํ ๊ณณ์์ ์์ฑํ๊ณ ์ ์ง ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ด์
๋ธ๋ฌ ์์ฒด๋ ๋ณ๋์ ๋๊ตฌ๊ฐ ์๋๋ผ C/C++ ๋ชจ์์
๋๋ค.
์ ํ๋ฆฌ์ผ์ด์
์ด ์ฌ์ฉํ๊ธฐ ์ํด ์ง์ ํฌํจํด์ผ ํ๋ ํค๋ ํ์ผ.
ํ์ฌ Intel SSE/SSE2/SSE4 ๋ฐ AVX/AVX2/AVX-512(32/64๋นํธ x86 ISA),
ARMv7 NEON/NEONv2, ARMv8 AArch32 ๋ฐ AArch64 NEON, SVE(32/64๋นํธ ARM ISA),
MIPS 32/64๋นํธ r5/r6 MSA ๋ฐ POWER 32/64๋นํธ VMX/VSX(๋ฆฌํ/๋น
์๋์ ISA)
์ค์นผ๋ผ ๊ฐ์ ์๋ ๋ถ๊ตฌํ๊ณ ๋๋ถ๋ถ ๊ตฌํ๋ฉ๋๋ค(/w ์ํ ์ถ์).
3/4 ํผ์ฐ์ฐ์ ๋ช
๋ น์ด์์ XNUMX/๋ณํฉ ์ ์ด๊ฐ ์๋ ๋ ๋์ SIMD ๋ฒกํฐ
ํ์ฌ 2/3 ํผ์ฐ์ฐ์ SPMD ๊ตฌ๋ ์์ง SIMD ISA์ ํ์ฅ์ผ๋ก ๊ณํ๋ฉ๋๋ค.
README ํ์ผ์ ์ฐธ์กฐํ์ญ์์ค.
๊ธฐ๋ฅ
- ======= UniSIMD ํต์ฌ ๊ธฐ๋ฅ =======
- ํตํฉ, ๋ฒ์ฉ, ์ด์ ๊ฐ๋ฅ, ํธํ ์ฝ๋
- ๋ช ์์ ๋ ์ง์คํฐ ํ ๋น, ์์ธก ๊ฐ๋ฅํ ์ฑ๋ฅ
- ์ฝ๋์ฉ 8๊ฐ์ ๋ ์ง์คํฐ ์ธํธ: 16, 32, 8(๋ฌด๋ฃ: 15, 30, XNUMX)
- ๋จ์ผ, ์ ๋ฐ ์ฟผ๋๋ก ์์ ์์ค SIMD ๋ ์ง์คํฐ/์๋
- ์คํ์ /ํฉํฐ๊ฐ ์๋ SIMD ์ ๋ ฌ ๋ฐฑ์๋ ๊ตฌ์กฐ
- ๋ฒกํฐ ๊ธธ์ด์ ๊ตฌ์ ๋ฐ์ง ์๋ ์์ง SIMD ISA, ๊ตฌ์ฑ ๊ฐ๋ฅ
- ๋์ ์ค์นผ๋ผ + 128/256๋นํธ + ๊ตฌ์ฑ ๊ฐ๋ฅํ SIMD ์ฐ์ฐ
- fp16/fp128(ํํ/์ฟผ๋) SIMD ์์ ์ ์ํ ISA ๊ตฌํ
- 4๊ฐ์ ์ฃผ์ ์์น์์ C/C++, Compute, SPMD
- ์ธํ SSE/SSE2/SSE4 ๋ฐ AVX/AVX2/AVX-512
- ARMv7 ๋ค์จ/NEONv2, ARMv8 AArch32/AArch64 ๋ค์จ, SVE
- MIPS r5/r6 MSA(์๋ฆฌ์ด P5600, I6400/P6600)
- ์ ์ VMX/VSX(PowerPC G4/G5, POWER6/7/8/9)
- CISC, RISC, RISC์ CISC, ๋ฆฌํ/๋น ์๋์ ISA
- reg-reg, load/store, load-op ๋ช ๋ น์ด ์ง์
- ์ผ๋ฐ, ์ธ๋ฑ์ค ๋ฐ ์ค์ผ์ผ ์ธ๋ฑ์ค ์ฃผ์ ์ง์ ๋ชจ๋
- FMA3 ์ง์(๋ค์ดํฐ๋ธ ๋๋ ๋ ๋์ ์ ๋ฐ๋ ์๋ฎฌ๋ ์ด์ )
- ๊ธฐ๋ณธ 32๋นํธ ABI๋ฅผ ์ํ 64/64๋นํธ ํ์ด๋ธ๋ฆฌ๋ ๋ชจ๋
- BASE ๋ฐ SIMD ์์ ์ ์ํ 32/64๋นํธ ์ฃผ์ ์ง์
- 32/64๋นํธ ๊ตฌ์ฑ ๊ฐ๋ฅํ SIMD ์์(fp+int)
- ๋์ 32/64๋นํธ BASE(๋ธ๋ฆฌ์ง, ๊ท์น) ๋ฐ SIMD ์์
- int8/int16(byte/half) BASE ops์ ๋ํ ISA ๊ตฌํ
- ์ฝ๋์ ๋ํ ์์ ํ ์ ์ด, ์ปดํ์ผ๋ฌ๊ฐ ๋ฐฉํดํ์ง ์์
- ์ต์ ํ๊ฒ์์ ๋นํธ ์ ํํ fp-compute์ ๊ฐ๋ฅ์ฑ
- QuadRay ์์ง์์ ์ฌ์ฉ
์ค๋์ธ์ค (Audience)
๊ฐ๋ฐ์
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
C++, ์ด์ ๋ธ๋ฆฌ, C
์นดํ ๊ณ ๋ฆฌ
์ด๊ฒ์ https://sourceforge.net/projects/unisimdassembler/์์๋ ๊ฐ์ ธ์ฌ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ์ฐ๋ฆฌ์ ๋ฌด๋ฃ ์ด์ ์ฒด์ ์ค ํ๋์์ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก ์จ๋ผ์ธ์ผ๋ก ์คํํ๊ธฐ ์ํด OnWorks์์ ํธ์คํ ๋์์ต๋๋ค.