@@ -111,10 +111,10 @@ error: use of undeclared identifier 'my_variable'
111111** ๋น ๋ฅธ ์ฐธ์กฐ:**
112112
113113``` bash
114- # 1. JIT + LLDB: ์์ค์์ ์ง์ CPU ํธ์คํธ ์ฝ๋ ๋๋ฒ๊น
114+ # 1. ์์ค + LLDB: ์์ค์์ ์ง์ CPU ํธ์คํธ ์ฝ๋ ๋๋ฒ๊น
115115pixi run mojo debug your_gpu_program.mojo
116116
117- # 2. JIT + CUDA-GDB: ์์ค์์ ์ง์ GPU ์ปค๋ ๋๋ฒ๊น
117+ # 2. ์์ค + CUDA-GDB: ์์ค์์ ์ง์ GPU ์ปค๋ ๋๋ฒ๊น
118118pixi run mojo debug --cuda-gdb --break-on-launch your_gpu_program.mojo
119119
120120# 3. ๋ฐ์ด๋๋ฆฌ + LLDB: ๋ฏธ๋ฆฌ ์ปดํ์ผ๋ ๋ฐ์ด๋๋ฆฌ์์ CPU ํธ์คํธ ์ฝ๋ ๋๋ฒ๊น
@@ -129,11 +129,12 @@ pixi run mojo debug --cuda-gdb --break-on-launch your_program_debug
129129
130130** ํ์ต๊ณผ ๋น ๋ฅธ ์คํ์ฉ:**
131131
132- - ** JIT ๋๋ฒ๊น
** ์ฌ์ฉ - ๋น๋ ๋จ๊ณ๊ฐ ํ์ ์์ด ๋ ๋น ๋ฅด๊ฒ ๋ฐ๋ณต ๊ฐ๋ฅ
132+ - ** ์์ค ๋๋ฒ๊น
** ์ฌ์ฉ - ๋ณ๋ ๋น๋ ๋จ๊ณ๊ฐ ํ์ ์์ด ๋ ๋น ๋ฅด๊ฒ ๋ฐ๋ณต ๊ฐ๋ฅ
133133
134134** ๋ณธ๊ฒฉ์ ์ธ ๋๋ฒ๊น
์ธ์
์ฉ:**
135135
136- - ** ๋ฐ์ด๋๋ฆฌ ๋๋ฒ๊น
** ์ฌ์ฉ - ๋ ์์ธก ๊ฐ๋ฅํ๊ณ ๊น๋ํ ๋๋ฒ๊ฑฐ ์ถ๋ ฅ
136+ - ** ๋ฐ์ด๋๋ฆฌ ๋๋ฒ๊น
** ์ฌ์ฉ - ๋ ์์ธก ๊ฐ๋ฅํ๊ณ ๊น๋ํ ๋๋ฒ๊ฑฐ ์ถ๋ ฅ, ๋น๋
137+ ํ๋๊ทธ๋ฅผ ์์ ํ ์ ์ด ๊ฐ๋ฅ (` -O0 -g ` ๋ก ๋ก์ปฌ ๋ณ์ ๋ณด์กด)
137138
138139** CPU ์ธก ๋ฌธ์ ์ฉ** (๋ฒํผ ํ ๋น, ํธ์คํธ ๋ฉ๋ชจ๋ฆฌ, ํ๋ก๊ทธ๋จ ๋ก์ง):
139140
@@ -143,8 +144,8 @@ pixi run mojo debug --cuda-gdb --break-on-launch your_program_debug
143144
144145- ** CUDA-GDB ๋ชจ๋** ์ฌ์ฉ - ๊ฐ๋ณ GPU ์ค๋ ๋๋ฅผ ๊ฒ์ฌํ๋ ์ ์ผํ ๋ฐฉ๋ฒ
145146
146- ์ฅ์ ์ ๋ค์ํ๊ฒ ์กฐํฉํด์ ์ฌ์ฉํ ์ ์๋ค๋ ์ ์
๋๋ค. JIT + LLDB๋ก ์ค์ ์ฝ๋๋ฅผ
147- ๋๋ฒ๊น
ํ ๋ค์, JIT + CUDA-GDB๋ก ์ ํํด์ ์ค์ ์ปค๋์ ๋๋ฒ๊น
ํ ์ ์์ต๋๋ค.
147+ ์ฅ์ ์ ๋ค์ํ๊ฒ ์กฐํฉํด์ ์ฌ์ฉํ ์ ์๋ค๋ ์ ์
๋๋ค. ์์ค + LLDB๋ก ์ค์ ์ฝ๋๋ฅผ
148+ ๋๋ฒ๊น
ํ ๋ค์, ์์ค + CUDA-GDB๋ก ์ ํํด์ ์ค์ ์ปค๋์ ๋๋ฒ๊น
ํ ์ ์์ต๋๋ค.
148149
149150---
150151
@@ -362,15 +363,17 @@ CUDA-GDB ๋ฐ์ด๋๋ฆฌ๋ฅผ ์๋ ๊ฐ์งํ๊ณ conda ํ๊ฒฝ์ ๋งํฌํ์ฌ ์ ์ฒด
362363### ๋๋ฒ๊น
์ ๊ทผ๋ฒ ํ์ต ๊ฒฝ๋ก
363364
364365Puzzle 01์ ์์ ๋ก [ ๋ค ๊ฐ์ง ๋๋ฒ๊น
์กฐํฉ] ( #๋ค-๊ฐ์ง-๋๋ฒ๊น
-์กฐํฉ ) ์ ํ์ํฉ๋๋ค.
365- ** ํ์ต ๊ฒฝ๋ก** : JIT + LLDB(๊ฐ์ฅ ์ฌ์)๋ก ์์ํด์ CUDA-GDB(๊ฐ์ฅ ๊ฐ๋ ฅํจ)๋ก
366+ ** ํ์ต ๊ฒฝ๋ก** : ์์ค + LLDB(๊ฐ์ฅ ์ฌ์)๋ก ์์ํด์ CUDA-GDB(๊ฐ์ฅ ๊ฐ๋ ฅํจ)๋ก
366367์งํํฉ๋๋ค.
367368
368369** โ ๏ธ GPU ๋๋ฒ๊น
์ ์ค์์ฌํญ** :
369370
370371- ` --break-on-launch ` ํ๋๊ทธ๋ CUDA-GDB ์ ๊ทผ๋ฒ์์ ** ํ์**
371- - ** ๋ฏธ๋ฆฌ ์ปดํ์ผ๋ ๋ฐ์ด๋๋ฆฌ** (์ ๊ทผ๋ฒ 3 & 4)๋ ๋๋ฒ๊น
์ ์ํด ` i ` ๊ฐ์ ๋ก์ปฌ ๋ณ์๋ฅผ
372- ๋ณด์กด
373- - ** JIT ์ปดํ์ผ** (์ ๊ทผ๋ฒ 1 & 2)์ ๋๋ถ๋ถ์ ๋ก์ปฌ ๋ณ์๋ฅผ ์ต์ ํ๋ก ์ ๊ฑฐ
372+ - ** ๋ฏธ๋ฆฌ ์ปดํ์ผ๋ ๋ฐ์ด๋๋ฆฌ** (์ ๊ทผ๋ฒ 3 & 4)๋ ` -O0 -g ` ๋ก ๋น๋๋์ด ์ต์ ํ๊ฐ
373+ ๋นํ์ฑํ๋๊ณ ๋๋ฒ๊ทธ ์ฌ๋ณผ์ด ํฌํจ๋ฉ๋๋ค โ ๊ทธ๋์ ` i ` ๊ฐ์ ๋ก์ปฌ ๋ณ์๊ฐ
374+ ๊ฒ์ฌ๋ฅผ ์ํด ๋ณด์กด๋ฉ๋๋ค
375+ - ** ์์ค์์ ๋๋ฒ๊น
** (์ ๊ทผ๋ฒ 1 & 2)์ ๊ธฐ๋ณธ ํ๋๊ทธ๋ก ์ปดํ์ผ๋๋ฏ๋ก, ๋๋ถ๋ถ์
376+ ๋ก์ปฌ ๋ณ์๊ฐ ์ต์ ํ๋ก ์ ๊ฑฐ๋ฉ๋๋ค
374377- ๋ณธ๊ฒฉ์ ์ธ GPU ๋๋ฒ๊น
์๋ ** ์ ๊ทผ๋ฒ 4** (๋ฐ์ด๋๋ฆฌ + CUDA-GDB) ์ฌ์ฉ
375378
376379## ํํ ๋ฆฌ์ผ Step 1: LLDB๋ก CPU ๋๋ฒ๊น
@@ -383,7 +386,7 @@ Puzzle 01์ ์์ ๋ก [๋ค ๊ฐ์ง ๋๋ฒ๊น
์กฐํฉ](#๋ค-๊ฐ์ง-๋๋ฒ๊น
-์กฐ
383386
384387### ๋๋ฒ๊ฑฐ ์คํ
385388
386- JIT ์ปดํ์ผ๋ก LLDB ๋๋ฒ๊ฑฐ๋ฅผ ์์ํฉ๋๋ค:
389+ ์์ค์์ ์ง์ LLDB ๋๋ฒ๊ฑฐ๋ฅผ ์์ํฉ๋๋ค:
387390
388391``` bash
389392# ํ ๋จ๊ณ๋ก p01.mojo๋ฅผ ์ปดํ์ผํ๊ณ ๋๋ฒ๊น
@@ -407,10 +410,15 @@ Puzzle 01์ด ์คํ๋ ๋ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๋์ง ์ถ์ ํด ๋ด
์๋ค.
407410์ถ๋ ฅ:
408411
409412``` text
410- Breakpoint 1: where = mojo`main, address = 0x00000000027d7530
413+ Breakpoint 1: no locations (pending).
414+ WARNING: Unable to resolve breakpoint to any actual locations.
411415```
412416
413- ๋๋ฒ๊ฑฐ๊ฐ main ํจ์๋ฅผ ์ฐพ์๊ณ ๊ฑฐ๊ธฐ์ ์คํ์ ์ผ์ ์ ์งํฉ๋๋ค.
417+ ์ด๊ฒ์ ์์๋๋ ๋์์
๋๋ค. ` mojo debug your_program.mojo ` ๋ก ์คํํ๋ฉด ๋๋ฒ๊ทธ
418+ ์ธ์
์ด ์์๋ ๋ ํ๋ก๊ทธ๋จ์ด ์ปดํ์ผ๋๋ฏ๋ก, ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ค์ ํ๋ ์์ ์๋
419+ ๋ชจ๋์ด ์์ง ๋๋ฒ๊ฑฐ์ ๋ก๋๋์ง ์์์ต๋๋ค. LLDB๋ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ๋ณด๋ฅ ์ํ๋ก
420+ ๋ฑ๋กํ๋ฉฐ ์์ง ๊ตฌ์ฒด์ ์ธ ๋ช
๋ น์ด ์ฃผ์์ ๋ฐ์ธ๋ฉํ ์ ์์ต๋๋ค. ์คํ์ด ์์๋๊ณ
421+ ๋ชจ๋์ด ๋ก๋๋๋ฉด LLDB๊ฐ ์๋์ผ๋ก ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
414422
415423** Step 2: ํ๋ก๊ทธ๋จ ์์**
416424
@@ -422,67 +430,22 @@ Breakpoint 1: where = mojo`main, address = 0x00000000027d7530
422430
423431``` text
424432Process 186951 launched: '/home/ubuntu/workspace/mojo-gpu-puzzles/.pixi/envs/default/bin/mojo' (x86_64)
425- Process 186951 stopped
426- * thread #1, name = 'mojo', stop reason = breakpoint 1.1
427- frame #0: 0x0000555557d2b530 mojo`main
428- mojo`main:
429- -> 0x555557d2b530 <+0>: pushq %rbp
430- 0x555557d2b531 <+1>: movq %rsp, %rbp
431- ...
432- ```
433-
434- ํ๋ก๊ทธ๋จ์ด ๋ธ๋ ์ดํฌํฌ์ธํธ์์ ๋ฉ์ท์ต๋๋ค. ํ์ฌ ** ์ด์
๋ธ๋ฆฌ ์ฝ๋** ๋ฅผ ๋ณด๊ณ ์๋๋ฐ
435- ์ด๋ ์ ์์
๋๋ค - ๋๋ฒ๊ฑฐ๊ฐ ๊ณ ์์ค Mojo ์์ค์ ๋๋ฌํ๊ธฐ ์ ์ ์ ์์ค ๋จธ์ ์ฝ๋์์
436- ์์ํฉ๋๋ค.
437-
438- ** Step 3: ์์ ๊ณผ์ ํ์**
439-
440- ``` bash
441- # ๋ช
๋ น์ด ํ๋๋ฅผ ๋จ๊ณ๋ณ ์คํ ์๋
442- (lldb) next
443- ```
444-
445- ์ถ๋ ฅ:
446-
447- ``` text
448- Process 186951 stopped
449- * thread #1, name = 'mojo', stop reason = instruction step over
450- frame #0: 0x0000555557d2b531 mojo`main + 1
451- mojo`main:
452- -> 0x555557d2b531 <+1>: movq %rsp, %rbp
453- 0x555557d2b534 <+4>: pushq %r15
454- ...
455- ```
456-
457- ์ด์
๋ธ๋ฆฌ๋ฅผ ๋จ๊ณ๋ณ๋ก ์คํํ๋ ๊ฒ์ ์ง๋ฃจํ ์ ์์ต๋๋ค. ๋ ๊ด๋ จ ์๋ ๋ถ๋ถ์ผ๋ก
458- ์งํํฉ์๋ค.
459-
460- ** Step 4: Mojo ์์ค ์ฝ๋์ ๋๋ฌํ๊ธฐ ์ํด ๊ณ์**
461-
462- ``` bash
463- # ์์ ์ด์
๋ธ๋ฆฌ๋ฅผ ๊ฑด๋๋ฐ์ด ์ค์ ์ฝ๋๋ก ์ด๋
464- (lldb) continue
465- ```
466-
467- ์ถ๋ ฅ:
468-
469- ``` text
470- Process 186951 resuming
471433Process 186951 stopped and restarted: thread 1 received signal: SIGCHLD
4724342 locations added to breakpoint 1
473435Process 186951 stopped
474- * thread #1, name = 'mojo', stop reason = breakpoint 1.3
475- frame #0: 0x00007fff5c01e841 JIT(0x7fff5c075000)`stdlib ::builtin::_startup::__mojo_main_prototype(argc=([0] = 1) , argv=0x00007fffffffa858) at _startup.mojo:95:4
436+ * thread #1, name = 'mojo', stop reason = breakpoint 1.2
437+ frame #0: 0x00007fff5c01e841 JIT(0x7fff5c075000)`std ::builtin::_startup::__mojo_main_prototype(argc=1 , argv=0x00007fffffffa858) at _startup.mojo:119:5
476438```
477439
478- Mojo์ ๋ฐํ์์ด ์ด๊ธฐํ ์ค์
๋๋ค. ` _startup.mojo ` ๋ Mojo์ ๋ด๋ถ ์์ ์ฝ๋๋ฅผ
479- ๋ํ๋
๋๋ค. ` SIGCHLD ` ์๊ทธ๋์ ์ ์์
๋๋ค - Mojo๊ฐ ๋ด๋ถ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋
480- ๋ฐฉ์์
๋๋ค.
440+ ํ๋ก๊ทธ๋จ์ด ์์๋๋ฉด ๋ณด๋ฅ ์ค์ด๋ ๋ธ๋ ์ดํฌํฌ์ธํธ๊ฐ ** 2๊ฐ์ ์์น** ๋ก ํด๊ฒฐ๋ฉ๋๋ค โ
441+ ํ๋๋ ` _startup.mojo ` (Mojo์ ๋ด๋ถ ์์ ๋ํผ)์, ๋ค๋ฅธ ํ๋๋ ์ฌ๋ฌ๋ถ์
442+ ` p01.mojo ` ์ ` main ` ์ ์์นํฉ๋๋ค. LLDB๋ ์ฒซ ๋ฒ์งธ ํํธ์ธ ์์ ๋ํผ์์ ๋ฉ์ถฅ๋๋ค.
443+ ` SIGCHLD ` ์๊ทธ๋์ ์ ์์
๋๋ค โ Mojo๊ฐ ๋ด๋ถ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ์์
๋๋ค.
481444
482- ** Step 5 : ์ค์ ์ฝ๋๋ก ๊ณ์**
445+ ** Step 3 : ์ค์ ์ฝ๋๋ก ๊ณ์**
483446
484447``` bash
485- # ํ ๋ฒ ๋ continueํด์ p01.mojo ์ฝ๋์ ๋๋ฌ!
448+ # p01.mojo ์ฝ๋์ ๋๋ฌํ๊ธฐ ์ํด continue
486449(lldb) continue
487450```
488451
@@ -491,25 +454,28 @@ Mojo์ ๋ฐํ์์ด ์ด๊ธฐํ ์ค์
๋๋ค. `_startup.mojo`๋ Mojo์ ๋ด๋ถ
491454``` text
492455Process 186951 resuming
493456Process 186951 stopped
494- * thread #1, name = 'mojo', stop reason = breakpoint 1.2
495- frame #0: 0x00007fff5c014040 JIT(0x7fff5c075000)`p01::main(__error__=<unavailable> ) at p01.mojo:24 :23
496- 21
497- 22
498- 23 def main():
499- -> 24 with DeviceContext() as ctx:
500- 25 out = ctx.enqueue_create_buffer[dtype](SIZE)
501- 26 out.enqueue_fill(0)
502- 27 a = ctx.enqueue_create_buffer[dtype](SIZE)
457+ * thread #1, name = 'mojo', stop reason = breakpoint 1.1
458+ frame #0: 0x00007fff5c014040 JIT(0x7fff5c075000)`p01::main() at p01.mojo:30 :23
459+ 27
460+ 28
461+ 29 def main() raises :
462+ -> 30 with DeviceContext() as ctx:
463+ 31 var out = ctx.enqueue_create_buffer[dtype](SIZE)
464+ 32 out.enqueue_fill(0)
465+ 33 var a = ctx.enqueue_create_buffer[dtype](SIZE)
503466```
504467
505468์ด์ ์ค์ Mojo ์์ค ์ฝ๋๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์ฃผ๋ชฉํ ์ :
506469
507- - p01.mojo ํ์ผ์ ** 21-27๋ฒ ์ค**
508- - ** ํ์ฌ ์ค 24** : ` with DeviceContext() as ctx: `
509- - ** JIT ์ปดํ์ผ** : ` JIT(0x7fff5c075000) ` ์ Mojo๊ฐ ์ฝ๋๋ฅผ ์ฆ์์์ ์ปดํ์ผํ์์
510- ๋ํ๋
470+ - p01.mojo ํ์ผ์ ** 27-33๋ฒ ์ค**
471+ - ** ํ์ฌ ์ค 30** : ` with DeviceContext() as ctx: `
472+ - ** ์ธํ๋ก์ธ์ค ์คํ** : ` JIT(0x7fff5c075000) ` ์ ๋์ฌ๋ ์คํ ์ค์ธ ํ๋ก์ธ์ค์
473+ ๋ก๋๋ ์ฝ๋ ์์ญ์ ๋ํ LLDB์ ๋ผ๋ฒจ์
๋๋ค. ` mojo debug your_program.mojo ` ๋ก
474+ ์คํํ๋ฉด, ์ปดํ์ผ๋ ํ๋ก๊ทธ๋จ์ด ๋์คํฌ์ ์คํ ํ์ผ์ ์ฐ์ง ์๊ณ ์ธํ๋ก์ธ์ค์์
475+ ์คํ๋ฉ๋๋ค โ ๊ทธ๋์ ์ด ๊ฒฝ๋ก๊ฐ ๋จผ์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋น๋ํ๋ ๊ฒ๋ณด๋ค ์์์ด ๋น ๋ฅด๊ณ ,
476+ ` your_program_debug ` ํ์ผ์ด ์์ฑ๋์ง ์์ต๋๋ค
511477
512- ** Step 6 : ํ๋ก๊ทธ๋จ ์๋ฃ**
478+ ** Step 4 : ํ๋ก๊ทธ๋จ ์๋ฃ**
513479
514480``` bash
515481# ํ๋ก๊ทธ๋จ์ ์๋ฃ๊น์ง ์คํ
@@ -532,12 +498,12 @@ Process 186951 exited with status = 0 (0x00000000)
532498
533499** ๊ฑฐ์ณ์จ ๋๋ฒ๊น
์ฌ์ :**
534500
535- 1 . ** ์ด์
๋ธ๋ฆฌ๋ก ์์** - ์ ์์ค ๋๋ฒ๊น
์์๋ ์ ์์ ์ธ ํ์์ด๋ฉฐ, ๋๋ฒ๊ฑฐ๊ฐ ๋จธ์
536- ์์ค์์ ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ณด์ฌ์ค
537- 2 . ** Mojo ์์ ๊ณผ์ ํ์ ** - Mojo์ ๋ด๋ถ ์ด๊ธฐํ ์ฝ๋๊ฐ ์์์ ํ์ต
538- 3 . ** ์์ค ์ฝ๋ ๋๋ฌ ** - ๊ตฌ๋ฌธ ๊ฐ์กฐ๊ฐ ๋ ์ค์ p01 .mojo 21-27๋ฒ ์ค ํ์ธ
539- 4 . ** JIT ์ปดํ์ผ ๊ด์ฐฐ ** - Mojo๊ฐ ์ฝ๋๋ฅผ ์ฆ์์์ ์ปดํ์ผํ๋ ๊ฒ์ ๊ด์ฐฐ
540- 5 . ** ์ฑ๊ณต์ ์ธ ์คํ ํ์ธ** - ํ๋ก๊ทธ๋จ์ด ์์๋ ์ถ๋ ฅ์ ์์ฑํจ์ ํ์ธ
501+ 1 . ** Mojo ์์ ๊ณผ์ ํ์ ** - Mojo์ ๋ด๋ถ ์ด๊ธฐํ ์ฝ๋๊ฐ ์์์ ํ์ต (๋ธ๋ ์ดํฌ
502+ ํฌ์ธํธ๊ฐ ๋ ์์น๋ก ํด๊ฒฐ๋์ด ๋จผ์ ` _startup.mojo ` ์์ ๋ฉ์ท์ต๋๋ค)
503+ 2 . ** ์์ค ์ฝ๋ ๋๋ฌ ** - ๊ตฌ๋ฌธ ๊ฐ์กฐ๊ฐ ๋ ์ค์ p01.mojo 27-33๋ฒ ์ค ํ์ธ
504+ 3 . ** ์ธํ๋ก์ธ์ค ์คํ ๊ด์ฐฐ ** - ` mojo debug your_program .mojo` ๊ฐ ํ๋ก๊ทธ๋จ์
505+ ์ปดํ์ผํ๊ณ ๋์คํฌ์ ์คํ ํ์ผ์ ์ฐ์ง ์๊ณ ๋ฐ๋ก ์คํํ๋ ๊ฒ์ ๊ด์ฐฐ
506+ 4 . ** ์ฑ๊ณต์ ์ธ ์คํ ํ์ธ** - ํ๋ก๊ทธ๋จ์ด ์์๋ ์ถ๋ ฅ์ ์์ฑํจ์ ํ์ธ
541507
542508** LLDB ๋๋ฒ๊น
์ด ์ ๊ณตํ๋ ๊ฒ:**
543509
@@ -567,7 +533,7 @@ CPU์์ ์ผ์ด๋๋ ๋ชจ๋ ๊ฒ. ์ค์ GPU ์ปค๋ ๋๋ฒ๊น
์๋ ๋ค์ ์
567533
568534## ํํ ๋ฆฌ์ผ Step 2: ๋ฐ์ด๋๋ฆฌ ๋๋ฒ๊น
569535
570- JIT ๋๋ฒ๊น
์ ๋ฐฐ์ ์ผ๋ ์ด์ ํ๋ก๋์
ํ๊ฒฝ์์ ์ฌ์ฉํ๋ ** ์ ๋ฌธ์ ์ธ ์ ๊ทผ๋ฒ** ์
536+ ์์ค ๋๋ฒ๊น
์ ๋ฐฐ์ ์ผ๋ ์ด์ ํ๋ก๋์
ํ๊ฒฝ์์ ์ฌ์ฉํ๋ ** ์ ๋ฌธ์ ์ธ ์ ๊ทผ๋ฒ** ์
571537ํ์ํฉ์๋ค.
572538
573539** ์๋๋ฆฌ์ค** : ์ฌ๋ฌ ํ์ผ์ด ์๋ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์
์ ๋๋ฒ๊น
ํ๊ฑฐ๋ ๊ฐ์
@@ -600,19 +566,19 @@ pixi run mojo debug solutions/p01/p01_debug
600566
601567** ์์ ๋น๊ต:**
602568
603- | JIT ๋๋ฒ๊น
| ๋ฐ์ด๋๋ฆฌ ๋๋ฒ๊น
|
604- | ------------------------------------| ----------------------------|
605- | ํ ๋จ๊ณ๋ก ์ปดํ์ผ + ๋๋ฒ๊น
| ํ ๋ฒ ๋น๋, ์ฌ๋ฌ ๋ฒ ๋๋ฒ๊น
|
606- | ๋๋ฆฐ ์์ (์ปดํ์ผ ์ค๋ฒํค๋) | ๋น ๋ฅธ ์์ |
607- | ์ปดํ์ผ ๋ฉ์์ง๊ฐ ๋๋ฒ๊ทธ ์ถ๋ ฅ๊ณผ ์์ | ๊น๋ํ ๋๋ฒ๊ฑฐ ์ถ๋ ฅ |
608- | ๋๋ฒ๊น
์ค ์์ฑ๋๋ ๋๋ฒ๊ทธ ์ฌ๋ณผ | ๊ณ ์ ๋ ๋๋ฒ๊ทธ ์ฌ๋ณผ |
569+ | ์์ค ๋๋ฒ๊น
| ๋ฐ์ด๋๋ฆฌ ๋๋ฒ๊น
|
570+ | ------------------------------------| -------------------------------- |
571+ | ํ ๋จ๊ณ๋ก ์ปดํ์ผ + ๋๋ฒ๊น
| ํ ๋ฒ ๋น๋, ์ฌ๋ฌ ๋ฒ ๋๋ฒ๊น
|
572+ | ๋๋ฆฐ ์์ (์ปดํ์ผ ์ค๋ฒํค๋) | ๋น ๋ฅธ ์์ |
573+ | ์ปดํ์ผ ๋ฉ์์ง๊ฐ ๋๋ฒ๊ทธ ์ถ๋ ฅ๊ณผ ์์ | ๊น๋ํ ๋๋ฒ๊ฑฐ ์ถ๋ ฅ |
574+ | ๊ธฐ๋ณธ ๋น๋ ํ๋๊ทธ | ๋ช
์์ ` -O0 -g ` ๋น๋ ํ๋๊ทธ |
609575
610576** ๊ฐ์ LLDB ๋ช
๋ น์ด** (` br set -n main ` , ` run ` , ` continue ` )๋ฅผ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์
611577์ฐจ์ด๋ฅผ ๋๋ ์ ์์ต๋๋ค:
612578
613579- ** ๋น ๋ฅธ ์์** - ์ปดํ์ผ ์ง์ฐ ์์
614- - ** ๊น๋ํ ์ถ๋ ฅ** - JIT ์ปดํ์ผ ๋ฉ์์ง ์์
615- - ** ๋ ์์ธก ๊ฐ๋ฅ** - ๋๋ฒ๊ทธ ์ฌ๋ณผ์ด ์คํ ๊ฐ์ ๋ณํ์ง ์์
580+ - ** ๊น๋ํ ์ถ๋ ฅ** - ์ปดํ์ผ ๋ฉ์์ง๊ฐ ์์ด์ง ์์
581+ - ** ๋ ์์ธก ๊ฐ๋ฅ** - ๋น๋ ํ๋๊ทธ๊ฐ ๋ช
์์ ์ด๊ณ ์คํ ๊ฐ์ ์ฌ์ฌ์ฉ๋จ
616582- ** ์ ๋ฌธ์ ์ธ ์ํฌํ๋ก์ฐ** - ํ๋ก๋์
๋๋ฒ๊น
์ด ์ด๋ ๊ฒ ์๋ํจ
617583
618584---
@@ -660,11 +626,11 @@ GPU ๋๋ฒ๊น
์ด ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ์ด์ ๋ฅผ ์ดํดํฉ์๋ค:
660626# ์ด๋ฏธ ์คํํ๋์ง ํ์ธ (ํ ๋ฒ์ด๋ฉด ์ถฉ๋ถ)
661627pixi run setup-cuda-gdb
662628
663- # JIT + CUDA-GDB ์ฌ์ฉ (์์ ์ ๊ทผ๋ฒ 2)
629+ # ์์ค + CUDA-GDB ์ฌ์ฉ (์์ ์ ๊ทผ๋ฒ 2)
664630pixi run mojo debug --cuda-gdb --break-on-launch solutions/p01/p01.mojo
665631```
666632
667- ํ์ต๊ณผ ๋น ๋ฅธ ๋ฐ๋ณต์ ์ ํฉํ ** JIT + CUDA-GDB ์ ๊ทผ๋ฒ** ์ ์ฌ์ฉํฉ๋๋ค.
633+ ํ์ต๊ณผ ๋น ๋ฅธ ๋ฐ๋ณต์ ์ ํฉํ ** ์์ค + CUDA-GDB ์ ๊ทผ๋ฒ** ์ ์ฌ์ฉํฉ๋๋ค.
668634
669635** Step 2: ์คํํ๊ณ GPU ์ปค๋ ์ง์
์ ์๋ ์ ์ง**
670636
@@ -1278,7 +1244,7 @@ GPU ๋๋ฒ๊น
๊ธฐ์ด์ ๋ํ ํฌ๊ด์ ์ธ ํํ ๋ฆฌ์ผ์ ์๋ฃํ์ต๋๋ค.
12781244
12791245- โ
LLDB๋ก ** CPU ํธ์คํธ ๋๋ฒ๊น
** - ์ฅ์น ์ค์ , ๋ฉ๋ชจ๋ฆฌ ํ ๋น, ํ๋ก๊ทธ๋จ ํ๋ฆ ๋๋ฒ๊น
12801246- โ
CUDA-GDB๋ก ** GPU ์ปค๋ ๋๋ฒ๊น
** - ๋ณ๋ ฌ ์ค๋ ๋, GPU ๋ฉ๋ชจ๋ฆฌ, ๊ฒฝ์ ์ํ ๋๋ฒ๊น
1281- - โ
** JIT vs ๋ฐ์ด๋๋ฆฌ ๋๋ฒ๊น
** - ์ํฉ์ ๋ง๋ ์ ๊ทผ๋ฒ ์ ํ
1247+ - โ
** ์์ค vs ๋ฐ์ด๋๋ฆฌ ๋๋ฒ๊น
** - ์ํฉ์ ๋ง๋ ์ ๊ทผ๋ฒ ์ ํ
12821248- โ
pixi๋ก ** ํ๊ฒฝ ๊ด๋ฆฌ** - ์ผ๊ด๋๊ณ ์ ๋ขฐํ ์ ์๋ ๋๋ฒ๊น
์ค์ ๋ณด์ฅ
12831249
12841250** ์ค์ ๋ณ๋ ฌ ํ๋ก๊ทธ๋๋ฐ ํต์ฐฐ** :
@@ -1295,8 +1261,8 @@ GPU ๋๋ฒ๊น
์ ๋ํด ์ฝ๊ธฐ๋ง ํ ๊ฒ์ด ์๋๋ผ **๊ฒฝํํ์ต๋๋ค**:
12951261
12961262- ** ์ค์ ์ฝ๋ ๋๋ฒ๊น
** : ์ค์ GPU ์คํ์ผ๋ก Puzzle 01์ ` add_10 ` ์ปค๋์
12971263 ๋๋ฒ๊น
ํ์ต๋๋ค
1298- - ** ์ค์ ๋๋ฒ๊ฑฐ ์ถ๋ ฅ ํ์ธ** : LLDB ์ด์
๋ธ๋ฆฌ, CUDA-GDB ์ค๋ ๋ ์ํ, ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ
1299- ์ง์ ํ์ธํ์ต๋๋ค
1264+ - ** ์ค์ ๋๋ฒ๊ฑฐ ์ถ๋ ฅ ํ์ธ** : JIT ๋ผ๋ฒจ์ด ๋ถ์ ํ๋ ์์์ LLDB ์์ค ์ ์ง,
1265+ CUDA-GDB ์ค๋ ๋ ์ํ, ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ง์ ํ์ธํ์ต๋๋ค
13001266- ** ์ ๋ฌธ ๋๊ตฌ ์ฌ์ฉ** : ํ๋ก๋์
GPU ๊ฐ๋ฐ์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ CUDA-GDB๋ฅผ
13011267 ์ฌ์ฉํ์ต๋๋ค
13021268- ** ์ค์ ์๋๋ฆฌ์ค ํด๊ฒฐ** : ๋ฒ์ ์ด๊ณผ ์ ๊ทผ, ๊ฒฝ์ ์ํ, ์ปค๋ ์คํ ์คํจ ๋ฌธ์ ๋ฅผ
0 commit comments