Packed Weights 78 KO - teamswyg/laya-tools GitHub Wiki
์์ ๊ฐ์ค์น ํ๋ฅผ Go์์ ์ ํํด ์ฐ๊ธฐ
pkg/hintweights๋ ๋ฌธ์ฅ์ ์์ฑํ๊ฑฐ๋ ๋ชจ๋ธ์ ํ์ตํ๋ ๊ธฐ๋ฅ์ด ์๋๋๋ค. ์ด๋ฏธ ์ค๋นํ RIIDOH01 ํ์์ 8,192๊ฐ ๊ณ์๋ก ์ ์๋ฅผ ๊ณ์ฐํ ๋, ์ ์ฒด ๊ณ์๋ฅผ FP64 ๋ฐฐ์ด๋ก ํ์ง ์๊ณ ์์ถ ๋ฐ์ดํธ์์ ์ฝ๋ ์ ํํ Go API์
๋๋ค. Laya ๋ฌธ์ฅ encoder ์ ์ฒด๋ฅผ ์ด ํฌ๊ธฐ๋ก ์คํํ๋ค๋ ๋ป์ ์๋๋๋ค.
FP64 ๊ณ์ ๋ฐฐ์ด์ ๋ฐ์ดํฐ๋ 65,536๋ฐ์ดํธ์ ๋๋ค. ์ reader์ ์์ payload๋ FP32 32,792๋ฐ์ดํธ, INT8 8,216๋ฐ์ดํธ, ternary๋ 0์ด ์๋ ๊ณ์ 13๊ฐ์์ 1,308๋ฐ์ดํธยท8,192๊ฐ์์ 2,330๋ฐ์ดํธ์ ๋๋ค. ๊ตฌ์กฐ์ฒดยทํ ๋น ๋ฐ์ฌ๋ฆผยทํธ์ถ์ ์ ๋ ฅยทํน์ง ๋ฐฐ์ดยทGo heapยท์ ์ฒด ํ๋ก์ธ์ค RSS๋ ์ด ํ์ ํฌํจํ์ง ์์ต๋๋ค. ์์ฑ ์ค์๋ ์ ์ ๋ ฅ๊ณผ ๋ณต์ฌ๋ณธ์ด ํจ๊ป ๋จ์ ์ ์์ต๋๋ค.
์๋์๋ ๋๊ฐ๊ฐ ์์ต๋๋ค. ๊ณต๊ฐ ํฉ์ฑ ํน์ง 266๊ฐ๋ฅผ ์ฐ๋ private prototype์ ์ ์ ๊ณ์ฐ์ ์ฒ์ ๊ตฌํ์์ ๊ธฐ์กด ๋ฐฐ์ด๋ณด๋ค ์ฝ45๋ฐฐ ๋๋ ธ์ต๋๋ค. ํ์๋ง๋ค ๋ฃจํ๋ฅผ ๋ถ๋ฆฌํ ํ์ ๊ตฌํ์์๋ ์ค์๊ฐ์ด FP32 213.1ns, INT8 189.6ns, ternary sparse 248.9nsยทdense 418.8ns๋ก, ๊ธฐ์กด ๋ฐฐ์ด๋ณด๋ค ์ฝ1.212.68๋ฐฐ ๋๋ ธ์ต๋๋ค. ์ธก์ ํ ์ ์ ๊ณ์ฐ์ ๋ชจ๋ 0 bytes/opยท0 allocs/op์์ต๋๋ค. ์ด ๋น๊ต๋ ํ Mac์ warm ํฉ์ฑ ๋ฐ๋ณต์ด๋ฉฐ ๋ ๋ฒ์ ์ ๋ณ๋ ํ๋ก์ธ์ค์์ ์ธก์ ํ์ต๋๋ค. ๊ณต๊ฐ ํจํค์ง ํฌํ
์ ๋ณ๋ ๋ฒค์น๋งํฌํ์ง ์์์ต๋๋ค.
๋ฐ๋ผ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ค์ํ ๊ฐ๋ฐ์๋ ์ ํํด ์ํํ๊ณ , ์ ์ ๊ณ์ฐ ์๋๊ฐ ์ค์ํ๋ฉด ๊ธฐ์กด ๊ฒฝ๋ก๋ฅผ ์ ์งํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ ๋ผ์ฐํฐ๋ ์ reader๋ฅผ ์๋ ์ ํํ์ง ์์ต๋๋ค. New๋ ์
๋ ฅ์ ๊ฒ์ฆํ ๋ค ์์ ๋ณต์ฌ๋ณธ์ ๋ง๋ค๋ฉฐ, ์์ฑ ์ค ์
๋ ฅ์ ์์ ์ ์ผ๋ก ์ ์งํด์ผ ํฉ๋๋ค. ๋ฐํ๋ View๋ ์ฝ๊ธฐ๋ง ๊ณต์ ํ๋ฏ๋ก ๋ณ๋ lock ์์ด ๋์ ์ฝ๊ธฐ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ์
๋ ฅ ์์ยท์ค๋ณตยทFP64 ๊ณฑ์
/๋์ ์ ์ ์งํ๊ณ , Inf/NaN ๋์ ๋๋ฌธ์ 0 ๊ณ์์ ๊ณฑ์
๋ ์๋ตํ์ง ์์ต๋๋ค.
์ฌ์ฉ ์์ ์ API ยท ์๋ณธ ์ธก์ ๊ณผ ์คํจ ๊ธฐ๋ก. ํ์ฌ bitmap/sign ์ ์ฅ์ native 1.58-bit ์ฐ์ฐยทbulk SIMDยท์ ์ฒด SoA ๊ตฌํ์ ๋ปํ์ง ์์ต๋๋ค. ์ค์ฌ์ฉ RAMยท๋ชจ๋ธ ์ ํ๋ยทLLM ์ฌ์ฉ๋ ์ ๊ฐ์ ๋ณ๋ ๊ฒ์ฆ์ด ํ์ํฉ๋๋ค.
๊ฐ๋ฐ ์๋ฃ๋ ๋ํ๊ณ ์์ต๋๋ค. ๊ด์ฐฐ77์ logfmt์ percent escape์ 24๊ฐ ์ ํ ์ ๋ ฅ์ ํ ๋ฒ ๊ด์ธกํด ์์๊ณผ ์ผ์นํ์ต๋๋ค. ์ด๋ ๋ ๋ฆฝ ์์ 24๊ฐ๋ ์ ํ์ต ์ ๋ต ์๊ฐ ์๋๋๋ค. ์์ฒ ์ ์79์ UUIDยทhumanize ๋ฑ 6๊ณ์ด์ ๊ฒํ ํ๋, ์๋ฌธ ์ทจ๋ยท๋ผ์ด์ ์คยท๊ทธ๋ฃน ๊ด๊ณยท๊ด์ฐฐยทํ์ต ์๊ฒฉ์ ๋ฐ๋ก ํ์ธํ๋๋ก ํฉ๋๋ค. ๋ณดํธ๋ 2,400๊ฐ ์ต์ข ํ๊ฐ์ ์ ๋ชจ๋ธ์ ํจ์ฉ ์ฆ๋ช ์ ์์ง ์๋ฃํ์ง ์์์ต๋๋ค.