๐ŸŽฏ ์„ฑ๋Šฅ ๋ณด๋„ˆ์Šค ์ฑŒ๋ฆฐ์ง€

๋ฐœ๊ฒฌ

Puzzle 33์„ ์™„๋ฃŒํ•˜๊ณ  Mojo์˜ TensorCore API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ œ ํ…์„œ ์ฝ”์–ด ํ–‰๋ ฌ ๊ณฑ์…ˆ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„์€ ์ •ํ™•ํ•˜๊ฒŒ ๋™์ž‘ํ•˜๊ณ , ๋ชจ๋“  ์ •ํ™•๋„ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋ฉฐ, ์‹ค์ œ ํ•˜๋“œ์›จ์–ด ๊ฐ€์† ํ–‰๋ ฌ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ Puzzle 16์˜ ํƒ€์ผ๋ง ๋ฒ„์ „๊ณผ ํ”„๋กœํŒŒ์ผ๋ง์œผ๋กœ ๋น„๊ตํ•˜๋ฉดโ€ฆ

โ€œ์ „์šฉ ํ•˜๋“œ์›จ์–ดโ€œ๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ๋” ๋А๋ฆฝ๋‹ˆ๋‹ค!

๋ฌด์—‡์ด ์ž˜๋ชป๋œ ๊ฑธ๊นŒ?

(NVIDIA ์ „์šฉ) ncu๋ฅผ ์‚ฌ์šฉํ•œ ํ”„๋กœํŒŒ์ผ๋ง์ด ๋ƒ‰ํ˜นํ•œ ํ˜„์‹ค์„ ๋“œ๋Ÿฌ๋ƒˆ์Šต๋‹ˆ๋‹ค (ํ”„๋กœํŒŒ์ผ๋ง ๊ธฐ๋ฒ•์„ ๋ณต์Šตํ•˜๋ ค๋ฉด Puzzle 10์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜ค๋ฅ˜ ํƒ์ง€์™€ Puzzle 30์˜ GPU ํ”„๋กœํŒŒ์ผ๋ง์„ ์ฐธ๊ณ ํ•˜์„ธ์š”):

ํ…์„œ ์ฝ”์–ด ๋ฒ„์ „ (๊ธฐ๋Œ€์— ๋ชป ๋ฏธ์นจ):

  • Duration: ~13.9 ms
  • ๋ฉ”๋ชจ๋ฆฌ ๋ฐ”์šด๋“œ: 72.5% DRAM ์ฒ˜๋ฆฌ๋Ÿ‰ (์—ฐ์‚ฐ ๋ฐ”์šด๋“œ์—ฌ์•ผ ํ•˜๋Š”๋ฐ!)
  • ๋‚ฎ์€ ์ ์œ ์œจ: 26.3% (ํ•˜๋“œ์›จ์–ด ๋‚ญ๋น„)
  • ์บ์‹œ ์žฌ์•™: 29.7% L2 ์ ์ค‘๋ฅ 
  • ๋ ˆ์ง€์Šคํ„ฐ ์••๋ฐ•: ์Šค๋ ˆ๋“œ๋‹น 68๊ฐœ ๋ ˆ์ง€์Šคํ„ฐ
  • ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์ถฉ๋Œ: ๋ฑ…ํฌ ์ถฉ๋Œ์ด ์„ฑ๋Šฅ์„ ํŒŒ๊ดด

ํƒ€์ผ๋ง ๋ฒ„์ „ (์Šน์ž):

  • Duration: ~1.62 ms (8.6๋ฐฐ ๋น ๋ฆ„!)
  • ์—ฐ์‚ฐ ๋ฐ”์šด๋“œ: 1.7% DRAM ์ฒ˜๋ฆฌ๋Ÿ‰ (์˜ˆ์ƒ๋Œ€๋กœ)
  • ํƒ์›”ํ•œ ์ ์œ ์œจ: 66.7%
  • ์บ์‹œ ์นœํ™”์ : 96.9% L2 ์ ์ค‘๋ฅ 
  • ํšจ์œจ์ : ์Šค๋ ˆ๋“œ๋‹น 38๊ฐœ ๋ ˆ์ง€์Šคํ„ฐ
  • ๊น”๋”ํ•œ ๋ฉ”๋ชจ๋ฆฌ: ์œ ์˜๋ฏธํ•œ ๋ฑ…ํฌ ์ถฉ๋Œ ์—†์Œ

๋ƒ‰ํ˜นํ•œ ํ˜„์‹ค

์ด๋Š” GPU ์ตœ์ ํ™”์—์„œ ํ”ํ•œ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค: ํ•˜๋“œ์›จ์–ด์˜ ์›์‹œ ์„ฑ๋Šฅ โ‰  ์‹ค์ œ ์„ฑ๋Šฅ. ํ…์„œ ์ฝ”์–ด๋Š” ๋†€๋ž๋„๋ก ๊ฐ•๋ ฅํ•˜์ง€๋งŒ, ๋™์‹œ์— ์š”๊ตฌ์‚ฌํ•ญ๋„ ๋†€๋ž๋„๋ก ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค:

  • ๋ฉ”๋ชจ๋ฆฌ ๋ฒฝ: ์—ฐ์‚ฐ์ด ๋„ˆ๋ฌด ๋นจ๋ผ์„œ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ ๋ณ‘๋ชฉ์ด ๋“œ๋Ÿฌ๋‚จ
  • ๋ฆฌ์†Œ์Šค ํƒ์‹: ๋†’์€ ๋ ˆ์ง€์Šคํ„ฐ ์‚ฌ์šฉ๋Ÿ‰์ด ์ ์œ ์œจ์„ ์ €ํ•˜์‹œํ‚ด
  • ์ ‘๊ทผ ํŒจํ„ด ๋ฏผ๊ฐ: ๋‚˜์œ ๋ฉ”๋ชจ๋ฆฌ ํŒจํ„ด์ด ์บ์‹œ ๋™์ž‘์„ ํŒŒ๊ดดํ•จ
  • ์„ค์ •์ด ํ•ต์‹ฌ: ์‹คํ–‰ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ํŠœ๋‹ํ•ด์•ผ ํ•จ

๋ฏธ์…˜: ํ…์„œ ์ฝ”์–ด ์„ฑ๋Šฅ ๊ฐœ์„ ํ•˜๊ธฐ

๋„์ „ ๊ณผ์ œ: ๋ฉ”๋ชจ๋ฆฌ ๋ฐ”์šด๋“œ์— ๋‚ฎ์€ ์ ์œ ์œจ์ธ ํ…์„œ ์ฝ”์–ด ๊ตฌํ˜„์„ ๋‹จ์ˆœํ•œ ํƒ€์ผ๋ง ๋ฒ„์ „์„ ์‹ค์ œ๋กœ ์ด๊ธฐ๋Š” ๊ตฌํ˜„์œผ๋กœ ๋ณ€ํ™˜ํ•˜์„ธ์š”.

์ด๊ฒจ์•ผ ํ•  ๊ธฐ์ค€:

  • ๋ชฉํ‘œ Duration: < 1.62 ms
  • ์ ์œ ์œจ: > 26.3% ๊ธฐ์ค€์„ 
  • DRAM ๋ถ€ํ•˜: < 72.5% ๊ธฐ์ค€์„ 
  • ์บ์‹œ ์„ฑ๋Šฅ: > 29.7% L2 ์ ์ค‘๋ฅ  ๊ธฐ์ค€์„ 

ํƒ๊ตฌํ•  ์ตœ์ ํ™” ์ „๋žต:

  1. ๋ ˆ์ง€์Šคํ„ฐ ์••๋ฐ• ์ค„์ด๊ธฐ

    • ๋” ์ž‘์€ ๋ˆ„์‚ฐ๊ธฐ ํƒ€์ผ ์‚ฌ์šฉ
    • ์ค‘๊ฐ„ ์ €์žฅ ๊ณต๊ฐ„ ์ตœ์†Œํ™”
    • ๋ ˆ์ง€์Šคํ„ฐ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ํ˜ผํ•ฉ ์ •๋ฐ€๋„ ๊ณ ๋ ค
    • ํšจ์œจ์ ์ธ ๋ˆ„์  ํŒจํ„ด์€ Puzzle 16์˜ ํƒ€์ผ๋ง ๋ฐฉ์‹ ์ฐธ๊ณ 
  2. ๋ฉ”๋ชจ๋ฆฌ ํŒจํ„ด ์ตœ์ ํ™”

    • ๋ฑ…ํฌ ์ถฉ๋Œ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ํŒจ๋”ฉ ์ถ”๊ฐ€ (๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๊ฐœ๋… ์ฐธ๊ณ )
    • copy_dram_to_sram_async ๋ ˆ์ด์•„์›ƒ ์ตœ์ ํ™”
    • ๋ณ‘ํ•ฉ ํŒจํ„ด ๊ฐœ์„  (์ดˆ๋ฐ˜ ํผ์ฆ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ๊ธฐ์ดˆ ์ฐธ๊ณ )
  3. ์ ์œ ์œจ ๊ฐœ์„ 

    • ๋” ๋‚˜์€ ์›Œํ”„ ํ™œ์šฉ์„ ์œ„ํ•œ ๋ธ”๋ก ํฌ๊ธฐ ํŠœ๋‹
    • ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ vs ๋ ˆ์ง€์Šคํ„ฐ ์‚ฌ์šฉ๋Ÿ‰ ๊ท ํ˜• ๋งž์ถ”๊ธฐ
    • ์›Œํ”„-SM ๋งคํ•‘ ์ตœ์ ํ™”
    • Puzzle 11-20 ์‹œ๋ฆฌ์ฆˆ์˜ ์Šค๋ ˆ๋“œ ์กฐ์ • ๊ตํ›ˆ ์ ์šฉ
  4. ์บ์‹œ ์ตœ์ ํ™”

    • ๋ฐ์ดํ„ฐ ์žฌ์‚ฌ์šฉ ํŒจํ„ด ๊ฐœ์„ 
    • ์บ์‹œ ๊ณ„์ธต ๊ตฌ์กฐ์— ๋งž๋Š” ํƒ€์ผ ํฌ๊ธฐ ์ตœ์ ํ™”
    • ๋ฐ์ดํ„ฐ ๋ ˆ์ด์•„์›ƒ ๋ณ€ํ™˜ ๊ณ ๋ ค
    • ์ด์ „ ํผ์ฆ ๊ณผ์ •์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต ๊ตฌ์กฐ ๊ฐœ๋… ํ™œ์šฉ
  5. ๊ณ ๊ธ‰ ๊ธฐ๋ฒ•

    • ๋ฉ”๋ชจ๋ฆฌ์™€ ์—ฐ์‚ฐ์„ ์ค‘์ฒฉํ•˜๊ธฐ ์œ„ํ•œ ๋”๋ธ” ๋ฒ„ํผ๋ง ๊ตฌํ˜„
    • ์†Œํ”„ํŠธ์›จ์–ด ํŒŒ์ดํ”„๋ผ์ด๋‹ ์‚ฌ์šฉ
    • ๋น„๋™๊ธฐ ์‹คํ–‰ ํŒจํ„ด ํƒ๊ตฌ
    • ์ƒˆ๋‹ˆํƒ€์ด์ € ํผ์ฆ์˜ ๊ณ ๊ธ‰ ์กฐ์ • ๊ธฐ๋ฒ• ์ ์šฉ

์„ฑ๊ณต ๊ธฐ์ค€

  • ์ •ํ™•์„ฑ: ๋ชจ๋“  ์ •ํ™•๋„ ํ…Œ์ŠคํŠธ๊ฐ€ ์—ฌ์ „ํžˆ ํ†ต๊ณผ
  • ์„ฑ๋Šฅ: ํ…์„œ ์ฝ”์–ด Duration < 1.62 ms
  • ํšจ์œจ์„ฑ: ๋” ๋†’์€ ์ ์œ ์œจ (>26.3%)
  • ๋ฉ”๋ชจ๋ฆฌ: ๋” ๋‚ฎ์€ DRAM ๋ถ€ํ•˜ (<72.5%)
  • ์บ์‹œ: ๋” ๋†’์€ ์ ์ค‘๋ฅ  (>29.7% L2)

๋” ๊นŠ์€ ๊ตํ›ˆ

์ด ๋ณด๋„ˆ์Šค ์ฑŒ๋ฆฐ์ง€๋Š” GPU ์ตœ์ ํ™”์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ตํ›ˆ์„ ๊ฐ€๋ฅด์นฉ๋‹ˆ๋‹ค: ๋ณ‘๋ชฉ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ตœ์‹  API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ชฉํ‘œ๋Š” ๋‹จ์ˆœํžˆ ํ…์„œ ์ฝ”์–ด๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค - ํ…์„œ ์ฝ”์–ด๊ฐ€ ์™œ ๋” ๋А๋ ค์งˆ ์ˆ˜ ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๊ณ , ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ง„๋‹จํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ , ์›์น™์— ๊ธฐ๋ฐ˜ํ•œ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์ฑŒ๋ฆฐ์ง€๋ฅผ ์™„์ˆ˜ํ•˜๋ฉด, ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ๊ณผ ๊ด€๊ณ„์—†์ด ์–ด๋–ค GPU ์›Œํฌ๋กœ๋“œ๋“  ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์—ญ๋Ÿ‰์„ ๊ฐ–์ถ”๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.