๐งช Unity Performance Alchemist
์ค์ -๋ ๋ฒจ AutoResearch: ๊ธฐ๊ธฐ ํฐ์ด๋ณ ์ต์ ํ ์ธํ ์ ํต๊ณ ๊ฒ์ดํธ๋ก ๋์ถํ๋ Unity ์๋ํฐ ํด
Unity Performance Alchemist๋ ์๋๋ ์นดํ์(Andrej Karpathy)์ autoresearch ๊ฐ๋
์ ์ ๋ํฐ์ ์ด์ํ ํ์ ๋ฃจํ(closed-loop) ์์จ ์ต์ ํ ์์ง์
๋๋ค. v0.2๋ถํฐ ๋ฃจํ์ ์ก์
์คํ์ด์ค๋ ํ์ง ์ธํ
/์ต์ ํ ํ ๊ธ์
๋๋ค:
LLM์ด "๋ค์์ ๋ค์ง์ ์ธํ "์ ๊ฐ์ค๋ก ์ ์ โ ํ๋ ์ด๋ชจ๋์์ Nํ ๋ ๋ฆฝ ์ธก์ โ ๋น๋ชจ์ ํต๊ณ ๊ฒ์ดํธ(Mann-Whitney U + Cliff's delta)๋ก ์ฑํ/๋กค๋ฐฑ โ ๋ฐ๋ณต โ ์ฑํผ์ธ ์ต์ข ํ์ธ ๋ฐ(fresh ABAB ์ฌ์ธก์ ) โ ๊ธฐ๊ธฐ ํฐ์ด๋ณ ์ต์ ์ธํ ๋์ถ.
์ฝ๋ ์ ์ฒด๋ฅผ ์ฌ์์ฑํ๋ ์ด์ ๋ฐฉ์๊ณผ ๋ฌ๋ฆฌ, ์ธํ ๋ณ๊ฒฝ์ ์ปดํ์ผ์ด ํ์ ์์ด ๋ฃจํ๊ฐ ํ ์ธ์ ์์์ ์์ ํ๊ฒ ๋๊ณ , ๋กค๋ฐฑ์ ๊ฐ ํ๋๋ฅผ ๋๋๋ฆฌ๋ ๊ฒ์ผ๋ก ๋๋ฉ๋๋ค.
๐ ํ๋ก์ ํธ ์๊ฐ
์๊ฐ์ ๋ฐ์ ๊ฒ
์ด ํ๋ก์ ํธ๋ ์๋๋ ์นดํ์(Andrej Karpathy)์ autoresearch์์ ์๊ฐ์ ๋ฐ์์ต๋๋ค. ์ฌ๋์ด ์ฝ๋๋ฅผ ์กฐ๊ธ์ฉ ์์ ํ๊ณ ๋ฒค์น๋งํฌ๋ฅผ ๋ฐ๋ณตํ๋ ์์
์, ๊ฐ์ค์ ์ธ์ฐ๊ณ ์ธก์ ํ ๋ค ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๋ค์ ํ๋์ ๊ฒฐ์ ํ๋ ์คํ ๋ฃจํ๋ก ๋ฐ๊พธ๊ณ ์ถ์์ต๋๋ค.
ํนํ Unity ์ฑ๋ฅ ์ต์ ํ๋ "์ด ์ต์ ์ ๋๋ฉด ๋นจ๋ผ์ง ๊ฒ ๊ฐ๋ค"๋ ๊ฒฝํ์ ์์กดํ๊ธฐ ์ฝ์ต๋๋ค. ํ์ง๋ง ํ๋ ์ํ์์ GC ์คํ์ดํฌ, ์ด ์ค๋กํ๋ง, ์คํ ์์์ ๊ฐ์ ์์ธ์ ์ํฅ์ ๋ฐ์ผ๋ฏ๋ก ๋จ ํ ๋ฒ์ ์คํ๋ง์ผ๋ก ๊ฐ์ ์ ๋จ์ ํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๊ทธ๋์ ์ด ํ๋ก์ ํธ๋ LLM์ ์ต์ ํ์ ์ต์ข ํ๋จ์๊ฐ ์๋๋ผ ๋ค์ ์คํ์ ๊ฐ์ค์ ์ ์ํ๋ ์ญํ ๋ก ์ ํํ๊ณ , ์ค์ ์ฑํ ์ฌ๋ถ๋ ๋ฐ๋ณต ์ธก์ ๊ณผ ํต๊ณ ๊ฒ์ดํธ๊ฐ ๊ฒฐ์ ํ๋๋ก ์ค๊ณํ์ต๋๋ค.
ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ถํ๋ฉฐ ๋ฐฐ์ด ๊ฒ
- ์ฑ๋ฅ ์ต์ ํ๋ ์ฝ๋๋ณด๋ค ์ธก์ ์ค๊ณ๊ฐ ๋จผ์ ๋ค. ํ๋ ์์ ๊ทธ๋๋ก ํ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ฉด ์ฐ์ ํ๋ ์ ์ฌ์ด์ ์๊ธฐ์๊ด ๋๋ฌธ์ ํ๋ณธ ์๊ฐ ๋ถํ๋ ค์ง ์ ์์ต๋๋ค. ์ด ๋๊ตฌ๋ ์๋ฐ์ ํ๋ ์์ ๋ฒ๋ฆฌ๊ณ ๊ฐ ๋ ๋ฆฝ ๋ฐ์ ์ค์๊ฐ ํ๋๋ง ์ฌ์ฉํด ์กฐ๊ฑด์ ๋น๊ตํฉ๋๋ค. ํ๋ณด๋ฅผ ์ฑํํ๋ ค๋ฉด ๋ค์ ์กฐ๊ฑด์ ๋์์ ๋ง์กฑํด์ผ ํฉ๋๋ค.
[ p < \alpha = 0.05 \quad\land\quad |d| \ge 0.147 \quad\land\quad \tilde{x}{\mathrm{candidate}} < \tilde{x}{\mathrm{current}} ]
์ฌ๊ธฐ์ (p)๋ MannโWhitney U ๊ฒ์ ์ ์ ์ํ๋ฅ , (d)๋ Cliff's delta, (\tilde{x})๋ ๋ฐ ์ค์๊ฐ์ ๋๋ค. ํต๊ณ์ ์ ์์ฑ๊ณผ ์ค์ง์ ์ธ ํจ๊ณผ ํฌ๊ธฐ๋ฅผ ํจ๊ป ์๊ตฌํ๋ฉด์, ์ฐ์ฐํ ๋ฏธ์ธ ๊ฐ์ ์ ์ต์ ํ ๊ฒฐ๊ณผ๋ก ์ค์ธํ๋ ์ผ์ ์ค์์ต๋๋ค.
์๋ํ์๋ ๋ ๋ฆฝ์ ์ธ ์์ ์ฅ์น๊ฐ ํ์ํ๋ค. LLM์ด ์ ์ํ ๋ณ๊ฒฝ์ ๊ทธ๋๋ก ์ ๋ขฐํ๋ ๋์ , ์ค์ ์์ค ๋ฃจํ์์๋ QualitySettings ํ ๊ธ๋ง ๋ณ๊ฒฝํ๊ณ ๋งค ๋ฐ ํ ์๋ ๊ฐ์ ๋ณต์ยท๊ฒ์ฆํฉ๋๋ค. ํ์ผ ์ฌ์์ฑ ๋ฐฉ์์ ์คํ ๋ชจ๋๋ก ๊ฒฉ๋ฆฌํ๊ณ , ์ปดํ์ผ ์ค๋ฅ ๋กค๋ฐฑยท์์น๋ ยท๋์ ํด์ ๊ฐ๋๋ฅผ ๋ฌ ๊ธฐ๋ณธ ๊ฒฝ๋ก์ ์ํ๋๋ฅผ ๋ถ๋ฆฌํ์ต๋๋ค.
๊ธฐ๊ธฐ๋ณ ์ต์ ํ๋ ํ๋์ ์ ๋ต์ ์ฐพ๋ ๋ฌธ์ ๊ฐ ์๋๋ค. ๋ชฉํ ํ๋ ์ ๋ ์ดํธ (F)์ ๋ฐ๋ฅธ ํ๋ ์ ์์ฐ์ ๋ค์์ฒ๋ผ ๊ณ์ฐ๋ฉ๋๋ค.
[ T_{\mathrm{frame}} = \frac{1000\ \mathrm{ms}}{F\ \mathrm{fps}} ]
๋ฐ๋ผ์ (30\ \mathrm{fps})๋ ์ฝ (33.33\ \mathrm{ms}), (60\ \mathrm{fps})๋ ์ฝ (16.67\ \mathrm{ms})์ ์์ฐ์ ๊ฐ์ง๋๋ค. ์ด ํ๋ก์ ํธ๋ low/mid/high ํฐ์ด๋ณ๋ก ์์ฐ๊ณผ ํ์ง ํ๋ก์๋ฅผ ๋ถ๋ฆฌํ๊ณ , ๊ฒฐ๊ณผ์ ๋น๋ ๋ฒ์ ยทํจ์น ID๋ฅผ derivedAgainst๋ก ๋จ๊น๋๋ค. ์ต์ ๊ฐ์ ์ ๋์ ์ธ ์์๊ฐ ์๋๋ผ ํน์ ๋น๋์ ํน์ ํฐ์ด์์ ๋์ถ๋ ์ค์ ์ด๋ผ๋ ์ ์ ๋ฐฐ์ ์ต๋๋ค.
- ์ธก์ ํ์ง ์์ ์์น๋ ์ฃผ์ฅํ์ง ์์์ผ ํ๋ค.
ํ์ฌ v0.2์ ์ธก์ ๊ฒฝ๋ก๋
editor-proxy์ด๋ฉฐ, ์ค๊ธฐ๊ธฐ์ ์ ๋ ํ๋ ์ํ์์ด๋ SoC๋ณ ์ด ํน์ฑ์ ๊ฒ์ฆํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์์์๋ ์ค์ Artifacts์ ๊ธฐ๋ก๋ ์์น๋งMeasured๋ก ๋ค๋ฃจ๊ณ , ๋ฌธํ ๊ธฐ๋ฐ ์์์Projected, ์์ง ์คํํ์ง ์์ ํญ๋ชฉ์๋ฏธ์ธก์ ์ผ๋ก ๊ตฌ๋ถํฉ๋๋ค. ์ฑ๋ฅ ๋๊ตฌ์์ ์ ๋ขฐ๋๋ ํ๋ คํ ๊ฐ์ ์์น๋ณด๋ค ์ด๋ฐ ๊ฒฝ๊ณ ํ์์์ ์์๋๋ค๋ ๊ฒ์ ํ์ธํ์ต๋๋ค.
ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ถํ ๊ณผ์
- ๋ฌธ์ ์ ์: Unity์ CPU, ๋ฉ๋ชจ๋ฆฌ/GC, UI ๋ฆฌ๋น๋, GPU ์ค๋ฒ๋๋ก ๋ณ๋ชฉ์ ์ฌํํ ์ ์๋ ๋ค ๊ฐ์ง ์ํ ์๋๋ฆฌ์ค๋ฅผ ๋ง๋ค๊ณ , ์ต์ ํ ํ๋ณด๋ฅผ ํ์ง ์ค์ ๊ณผ ํ ๊ธ์ ์กฐํฉ์ผ๋ก ๋ชจ๋ธ๋งํ์ต๋๋ค.
- ์์ ํ ์คํ ํ๋ฉด์ผ๋ก ์ ํ: ์ด๊ธฐ์ ํ์ผ ์ฌ์์ฑ ์ค์ฌ ์ ๊ทผ์ ๊ธฐ๋ณธ ๊ฒฝ๋ก์์ ๋ถ๋ฆฌํ๊ณ , ์ปดํ์ผ ์์ด ์ ์ฉยท๋ณต์ํ ์ ์๋ ์ค์ ์์ค
SettingsResearchRunner๋ฅผ ์ค์ฌ์ผ๋ก ์ฌ์ค๊ณํ์ต๋๋ค. - ํต์ฌ ๋ก์ง ๋ถ๋ฆฌ: ํต๊ณ, ์คํ ๊ณํ, ๊ฒ์ดํธ, ์ค์ ๋์ถ์ UnityEngine์ ์์กดํ์ง ์๋
UPA.Core๋ก ๋ถ๋ฆฌํ์ต๋๋ค.UPA.Runtime์ ์ถํ ์ค์ ๊ณผ ๊ธฐ๊ธฐ ํฐ์ด ์ ์ฉ์ ๋ด๋นํ๊ณ ,UPA.Editor๋ ๋ฒค์น๋งํฌยทLLMยท๋์๋ณด๋๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค. - ํ์ ๋ฃจํ ๊ตฌํ: LLM์ด ๊ฐ์ค์ ์ ์ํ๋ ๋ชจ๋์ LLM ์์ด ์คํํ ์ ์๋ DOE ๋ชจ๋๋ฅผ ํจ๊ป ๊ตฌํํ์ต๋๋ค. DOE๋ ์ํฉ์ ๋ฐ๋ผ OFAT์ (1+k)๊ฐ ๋ฐ ๋๋ Full Factorial์ (2^k)๊ฐ ์กฐํฉ์ ์ฌ์ฉํฉ๋๋ค.
- ํ์ ๊ณผ ์ฌํ์ฑ ๊ฐํ: MannโWhitney U์ Cliff's delta ๊ธฐ๋ฐ
AdoptionGate, ํฐ์ด ์์ฐ์ ํ์ธํ๋ShippingGate, ์ข ๋ฃ ์์ ์ fresh ABAB ์ฑํผ์ธ ํ์ธ ๋ฐ์ ์ถ๊ฐํ์ต๋๋ค. ๋ชจ๋ ์ฐ๊ตฌ ๊ฒฐ๊ณผ๋ JSON ์ํฐํฉํธ์ HTML ๋ฆฌํฌํธ๋ก ๋จ๊ธฐ๊ณ , NUnitยทdotnet CIยท์ ์ ๊ฒ์ฆ์ผ๋ก ํต์ฌ ๊ณ์ฝ์ ๊ณ ์ ํ์ต๋๋ค.
์ง๋ฉดํ๋ ์ด๋ ค์๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ
- ์ฑ๋ฅ ์ธก์ ๊ฐ์ ๋ ธ์ด์ฆ: ํ๋ ๋ฒ์ ์ธก์ ์ผ๋ก๋ ์์ ์ฐจ์ด๋ฅผ ์ ๋ขฐํ๊ธฐ ์ด๋ ค์ ์ต๋๋ค. ๋ ๋ฆฝ ๋ฐ๋ณ ์ค์๊ฐ, ์คํ ์์ ๋๋คํ, ์๋ฐ์ ํ๊ธฐ, baseline๊ณผ champion์ ๊ต์ฐจ ์ธก์ ํ๋ fresh ABAB ํ์ธ ๋ฐ์ ๋์ ํด ์ด ๋๋ฆฌํํธ์ ์ฐ์ฐํ ๋ณ๋์ ์ํฅ์ ์ค์์ต๋๋ค.
- LLM ๋ณ๊ฒฝ์ ์์ ์ฑ: ์ปดํ์ผ๋๋ ์ฝ๋๊ฐ ํญ์ ์ฌ๋ฐ๋ฅธ ์ฝ๋๋ ์๋๋ฉฐ, ํ์ผ ์ ์ฒด๋ฅผ ๋ค์ ์ฐ๋ ๋ฐฉ์์ ๋๋ฉ์ธ ๋ฆฌ๋ก๋์ ๋กค๋ฐฑ์ด ๋ณต์กํ์ต๋๋ค. ๊ธฐ๋ณธ ๋ฃจํ๋ฅผ ์ค์ ๋ณ๊ฒฝ์ผ๋ก ์ ํํ๊ณ , ํ์ผ ์ฌ์์ฑ์ ๋ช ์์ opt-in ์คํ ๋ชจ๋๋ก ๋ฎ์ท์ต๋๋ค. LLM์ ์ ์์์ด๊ณ ํต๊ณ ๊ฒ์ดํธ๊ฐ ์น์ธ์๋ผ๋ ์ญํ ๋ถ๋ฆฌ๊ฐ ํต์ฌ์ด์์ต๋๋ค.
- Unity์ ์๋ํ ํ
์คํธ์ ๊ฒฝ๊ณ: ์๋ํฐ์ ๋ฐํ์ API๋ฅผ ์ง์ ์ฐธ์กฐํ๋ฉด ํต์ฌ ๋ก์ง์ ๋น ๋ฅด๊ฒ ๊ฒ์ฆํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๊ทธ๋์
UPA.Core๋ฅผ ์์ C#์ผ๋ก ์ ์งํด ์ผ๋ฐ .NET ํ ์คํธ์์ ํต๊ณยท๊ฒ์ดํธยท์คํ ๊ณํ์ ๊ฒ์ฆํ๊ณ , Unity ์์กด ์ฝ๋๋ Editor/Runtime ๊ณ์ธต์ ๋ชจ์์ต๋๋ค. - ๊ธฐ๊ธฐ ์ฐจ์ด๋ฅผ ์๋ํฐ์์ ์์ ํ ์ฌํํ๊ธฐ ์ด๋ ค์: ์๋ํฐ ํ๋ก์๋ ์๋์ ์ธ ๋น์ฉ ์์๋ฅผ ํ์ํ๋ ๋ฐ๋ ์ ์ฉํ์ง๋ง ์ค์ ๊ธฐ๊ธฐ์ ์ดยท๋๋ผ์ด๋ฒยทSoC ํน์ฑ๊น์ง ๋์ ํ ์ ์์ต๋๋ค. ์ด ํ๊ณ๋ฅผ ์จ๊ธฐ์ง ์๊ณ ๊ฒฐ๊ณผ์
measurementSource: "editor-proxy"๋ฅผ ๊ธฐ๋กํ๋ฉฐ, ์ค๊ธฐ๊ธฐ ์ธก์ ์ ๋ณ๋์ ํ์ ๊ฒ์ฆ ๋จ๊ณ๋ก ๋จ๊ฒผ์ต๋๋ค.
์ด ๊ณผ์ ์ ํตํด Unity Performance Alchemist๋ ๋จ์ํ "๋ ๋น ๋ฅธ ์ฝ๋๋ฅผ ์๋์ผ๋ก ๋ง๋๋ ๋๊ตฌ"๊ฐ ์๋๋ผ, ์ฑ๋ฅ ๊ฐ์ค์ ๋ฐ๋ณต ๊ฐ๋ฅํ๊ฒ ์คํํ๊ณ ๊ทผ๊ฑฐ์ ํ๊ณ๋ฅผ ํจ๊ป ๊ธฐ๋กํ๋ ์ฐ๊ตฌ ๋๊ตฌ๋ก ๋ฐ์ ํ์ต๋๋ค.
๐ฏ ์ ์ด ๋๊ตฌ์ธ๊ฐ
| ๋ฌธ์ | ์ด ๋๊ตฌ์ ์ ๊ทผ |
|---|---|
| ๋จ์ผ ์คํ ๋ฒค์น๋งํฌ๋ ๋ ธ์ด์ฆ์ ์๋๋ค | ์กฐ๊ฑด๋น Nํ(๊ธฐ๋ณธ 10) ๋ ๋ฆฝ ๋ฐ, ๋ฐ๋น ์ค์๊ฐ๋ง ํต๊ณ์ ํฌ์ (์๊ธฐ์๊ด ๋ฐฐ์ ) |
| ๋ฏธ์ธํ ์์น๋ง ๋ณด๊ณ ์ฑํํ๋ ํ์ | MWU ์ ์์ฑ(ฮฑ=0.05) + Cliff's delta ํจ๊ณผ ํฌ๊ธฐ(\ |
| ๊ธด ๋ฃจํ๋ ๋ ธ์ด์ฆ๋ก๋ ๋ฑ๋ฐํ๋ค | ์ข ๋ฃ ์ ์ฑํผ์ธยท๋ฒ ์ด์ค๋ผ์ธ์ ๋ ๋ค fresh๋ก ABAB ์ธํฐ๋ฆฌ๋ธ ์ฌ์ธก์ ํด ์ต์ข ํ์ธ |
| ๊ธฐ๊ธฐ๋ง๋ค ์ต์ ์ธํ ์ด ๋ค๋ฅด๋ค | ํฐ์ด(low/mid/high)๋ณ ํ๋ ์ ์์ฐ ์ ์ธ โ ํฐ์ด๋ณ config ๋์ถ |
| ํจ์น๋ง๋ค ์ต์ ๊ฐ์ด ๋ณํ๋ค | ๋ชจ๋ ๋์ถ ๊ฒฐ๊ณผ์ derivedAgainst(๋น๋ ๋ฒ์ ยทํจ์น ID) ํ๊น
โ ํจ์น ๊ฐ diff ๋ฆฌํฌํธ |
์ธก์ ยทํ์ ยท๋์ถ์ ๋ฐฉ๋ฒ๋ก ์ ์ฒด๋ QA_METHODOLOGY.md ์ DEVICE_TIER_OPTIMIZATION.md ์ ๋ฌธ์ํ๋์ด ์์ต๋๋ค.
๐ ๋ณ๋ชฉ ์๋๋ฆฌ์ค ์นดํ๋ก๊ทธ (Case Studies)
์๋ 4๊ฐ ์ํ ์ฌ์ ์ ๋ํฐ์ 4๋ ๋ณ๋ชฉ์ ์๋์ ์ผ๋ก ์ฌํํ๋ ์ฌํ ๊ฐ๋ฅํ ์คํ ํฝ์ค์ฒ์ ๋๋ค. ๊ฐ ์๋๋ฆฌ์ค์ ๋ณ๋ชฉ ๋ฉ์ปค๋์ฆ๊ณผ ์ต์ ํ ์ด๋ก ์ RESEARCH_REPORT.md์ ์ ๋ฆฌ๋์ด ์์ต๋๋ค.
์์น ์ ์ง์ฑ ์์น: ์ด ๋ฆฌํฌ์ ๋ชจ๋ ์ฑ๋ฅ ์์น๋ ๋๊ตฌ๊ฐ ์ง์ ๊ธฐ๋กํ
Artifacts/research_run_*.json์์๋ง ์ธ์ฉ๋ฉ๋๋ค. ์์ง ์ค์ธก๋์ง ์์ ํญ๋ชฉ์ "๋ฏธ์ธก์ "์ผ๋ก ํ๊ธฐํ๋ฉฐ, ๋ฌธํ ๊ธฐ๋ฐ ์ถ์ ์ "projected"๋ก ๊ตฌ๋ถํฉ๋๋ค. ์ธก์ ์คํ ๋ฐฉ๋ฒ์ ์๋ Getting Started๋ฅผ ์ฐธ๊ณ ํ์ธ์.
| # | ์๋๋ฆฌ์ค | ๋ณ๋ชฉ ์ถ | ์ธก์ ์ํ |
|---|---|---|---|
| 1 | RTS Swarm (1,500 ์ ๋ O(nยฒ) ํํผ) | CPU | ๋ฏธ์ธก์ โ ์คํ ์ Artifacts/์ ์๋ ๊ธฐ๋ก |
| 2 | ๋ฆฌ๋ฌ๊ฒ์ ๋ ธํธ ํญ์ฃผ (Instantiate/Destroyยทํด๋ก์ ) | ๋ฉ๋ชจ๋ฆฌ/GC | ๋ฏธ์ธก์ โ ์คํ ์ Artifacts/์ ์๋ ๊ธฐ๋ก |
| 3 | UGUI 500์ ๊ทธ๋ฆฌ๋ ์ฐ์ ๋ฆฌ๋น๋ | UI/๋ ๋๋ง | ๋ฏธ์ธก์ โ ์คํ ์ Artifacts/์ ์๋ ๊ธฐ๋ก |
| 4 | ํํฐํด 50์์คํ ๊ณ ์ ๋จธํฐ๋ฆฌ์ผ ์ค๋ฒ๋๋ก | GPU | ๋ฏธ์ธก์ โ ์คํ ์ Artifacts/์ ์๋ ๊ธฐ๋ก |
๐ ๏ธ Getting Started
1. ํ ์คํธ ์ฌ ์ ์
์ ๋ํฐ ์๋จ ๋ฉ๋ด์์ ๋ณ๋ชฉ ์ฌ์ ์์ฑํฉ๋๋ค:
Window > Alchemist > 1. Setup Swarm Test SceneWindow > Alchemist > 2. Setup Osu GC Spike SceneWindow > Alchemist > 3. Setup UGUI Rebuild Spike SceneWindow > Alchemist > 4. Setup Particle Overdraw Scene
2. ๋ก์ปฌ AI ์คํ (์ ํ)
ollama run llama3.2:1b
LLM ์์ด๋ DOE ๋ชจ๋(OFAT / Full Factorial)๋ก ์์ ์คํ ๊ณํ ๊ธฐ๋ฐ ํ์์ด ๊ฐ๋ฅํฉ๋๋ค.
3. ์ฐ๊ตฌ ์คํ
Window > Alchemist > Performance Researcher ๋์๋ณด๋์์:
- ํฐ์ด ์ ํ (low 33.33ms / midยทhigh 16.67ms ํ๋ ์ ์์ฐ โ ์ ์ธ๊ฐ, ๊ทผ๊ฑฐ๋ QA_METHODOLOGY.md ๋ฌธํ ์ ์ฐธ์กฐ)
- START SETTINGS RESEARCH: LLM ๊ฐ์ค ๋ฃจํ
- RUN DOE EXPERIMENT: OFAT(1+k๋ฐ) ๋๋ Factorial(2^k๋ฐ) ์๋ ํ์
4. ๊ฒฐ๊ณผ ํ์ธ
Artifacts/research_run_<ํ์์คํฌํ>.jsonโ ์์ ์ํยทํต๊ณยท๊ฒ์ดํธ ํ์ ยท๋์ถ config ์ ์ฒด ๊ธฐ๋กArtifacts/report.htmlโ ์ ์ HTML ๋ฆฌํฌํธ (ํ์คํ ๋ฆฌ, p95/p99 ๋ธํ, ํจ์น ๊ฐ diff)
๐ฌ ์ ๋ขฐํ ์ ์๋ ๊ฒฐ๊ณผ๋ฅผ ์ํ ์ฅ์น
- ์ด์ค ๊ฒ์ดํธ: ์คํ ์ฑํ(ํ์ฌ ์ต๊ณ ๋๋น ์ ์๋ฏธํ ๊ฐ์ ์ธ๊ฐ)๊ณผ ์ถํ ํ์ (ํฐ์ด ์์ฐ์ ๋ง์กฑํ๋๊ฐ)์ ๋ถ๋ฆฌ โ ์์ฐ ์์์ ์์ํด๋ ๋ฃจํ๊ฐ ๊ฐ์ ์ ๋์ ํ ์ ์์ต๋๋ค.
- ์ฑํผ์ธ ์ต์ข
ํ์ธ ๋ฐ: ๋ฃจํ๊ฐ ๋
ธ์ด์ฆ๋ก ๋ฑ๋ฐํ์ ๊ฐ๋ฅ์ฑ์ ์ข
๋ฃ ์์ fresh ์ฌ์ธก์ ์ผ๋ก ๊ฒ์ฆ. ์คํจ ์
confirmationFailed๋ก ๊ธฐ๋ก๋๊ณ ํด๋น ๊ฒฐ๊ณผ๋ ์ถํยท๋ฌธ์ ์ธ์ฉ์ด ๊ธ์ง๋ฉ๋๋ค. - A/A ๋ ํ ์คํธ: ๋์ผ ์กฐ๊ฑด ๋ ์ธก์ ์์ ๊ฒ์ดํธ๊ฐ ์ฑํ์ ๋ด์ง ์๋์ง๊ฐ CI ํ ์คํธ๋ก ๊ณ ์ ๋์ด ์์ต๋๋ค.
- ์๋ ค์ง ํ๊ณ(์ ์ง ๊ณ ์ง): ๊ฒ์ดํธ๋ p50 ๋จ์ผ ์งํ(๊ผฌ๋ฆฌ ์ ํ๋ ๊ธฐ๋ก๋ง), ํ์ธ ๋ฐ๋ ๋จ์ผ ๋น๊ต โคฮฑ ์์ฌ ํ๋ ์กด์ฌ, ์๋ํฐ ์ธก์ ์ editor-proxy์ด๋ฉฐ ์ค๊ธฐ๊ธฐ ๊ฒ์ฆ ์ "validated"๋ฅผ ์ฃผ์ฅํ์ง ์์ต๋๋ค.
๐งฉ ์ํคํ ์ฒ
Core/ ์์ C# (UnityEngine ์์กด 0) โ ํต๊ณยท๊ฒ์ดํธยท์คํ ๊ณํยทconfig ๋์ถ = dotnet CI์์ ์ปดํ์ผ+ํ
์คํธ
Runtime/ ์ถํ ํ๋ฉด โ DeviceTierConfig(SO), ๋ฐํ์ ํฐ์ด ๊ฐ์ง, ์ธํ
์ ์ฉ
Editor/ ๊ธ๋ฃจ โ Nํ ๋ฒค์น๋งํฌ ๋ฌ๋, ํฐ์ด ์๋ฎฌ๋ ์ดํฐ, LLM ํ๋ก๋ฐ์ด๋(Ollama/Gemini), ๋์๋ณด๋
Samples/ ๋ณ๋ชฉ ์๋๋ฆฌ์ค 4์ข
(์คํ ํฝ์ค์ฒ)
Tests/ NUnit โ ๋์ผ ์์ค๊ฐ Unity Test Runner์ dotnet ์์ชฝ์์ ์คํ
โ Experimental โ File Rewrite Mode: ์ด์ ๋ฒ์ ์ "LLM์ด ์์ค ํ์ผ ์ ์ฒด๋ฅผ ์ฌ์์ฑ"ํ๋ ๋ฃจํ๋ ์คํ ๋ชจ๋๋ก ๊ฒฉ๋ฆฌ๋์ด ๊ธฐ๋ณธ ๋นํ์ฑ์ ๋๋ค. ์ปดํ์ผ ๋กค๋ฐฑยท๋๋ฉ์ธ ๋ฆฌ๋ก๋ ๋ณต๊ตฌยท๋์ ํด์ ๊ฐ๋๊ฐ ์์ง๋ง, ์ด ๋ชจ๋์ ๊ฒฐ๊ณผ๋ ํค๋๋ผ์ธ ์์น๋ก ์ฌ์ฉํ์ง ์์ต๋๋ค.
Developed by mmporong ๐ | Research Report ยท QA Methodology ยท Device Tier Optimization
Built With
- ai
- autoresearch
- optimization
- unity
Log in or sign up for Devpost to join the conversation.