Skip to content

Commit 48db149

Browse files
authored
Add complete Korean (한국어) translation (#225)
* docs: Add Korean translation setup and language switcher - Add book/i18n/ko/ directory structure for Korean translation - Create language switcher dropdown (JS + CSS) for navigation - Update pixi.toml with bilingual build tasks: - build-book: builds both English and Korean - build-book-en/ko: individual language builds - book-en/ko: individual serve commands - Configure Korean book.toml with proper paths and preprocessors - Use symlinks for shared assets (theme, favicon, _includes) - Update include paths in Korean markdown files for correct resolution * docs(i18n): Add Korean translations for puzzles 01-08 - Translate puzzle 01-08 markdown files to Korean - Translate howto.md and reward.md - Fix media paths to use absolute URLs for shared assets * feat(i18n): Add translation status checker and improve UI - Add i18n_status_preprocessor.py to detect outdated translations by comparing source commit hashes embedded in translation files - Add source commit metadata to all Korean translation files (97 files) - Display warning banner when translation is outdated - Update language switcher to use Material Symbols icon - Add placeholder in index.hbs to reduce icon flickering - Add warning banner CSS styles for light and dark themes * docs(i18n): Add Korean translations for puzzles 09-10 - Translate all puzzle 09 files (essentials, first/second/third case) - Translate all puzzle 10 files (memcheck, racecheck) - Fix relative include paths for i18n directory depth (../../../ → ../../../../../) to match puzzles 01-08 pattern * docs(i18n): Add Korean translations for puzzles 11-12 - Translate puzzle 11 (Pooling) and puzzle 12 (Dot Product) - Add Korean glossary (GLOSSARY_KO.md) - Fix include paths for puzzle 11 translation files - Update .gitignore to exclude .claude/ and .agent/ dirs * docs(i18n): Add Korean translations for puzzles 13-16 - Translate puzzle 13 (1D convolution: simple, block boundary) - Translate puzzle 14 (1D convolution: simple, complete) - Translate puzzle 15 (2D convolution) - Translate puzzle 16 (matrix multiplication: naïve, shared memory, tiled, roofline) - Refine puzzles 11-12 terminology and fix image paths - Add glossary terms (mixed precision, stride, arithmetic intensity, compute-bound, memory-bound, etc.) * fix(i18n): Compare against main branch for translation freshness - Preprocessor now uses `git log main` instead of current branch to detect English source changes, fixing false negatives when the translation branch hasn't merged latest main - Sync Korean roofline.md with upstream percentage formatting fix * docs(i18n): Add Korean translations for puzzles 17-19 and bonuses - Translate puzzle 17, 18, 19 and bonus challenges (part4) - Add glossary terms: softmax, in-place, thread divergence - Refine wording for natural Korean expressions * docs(i18n): Add Korean translations for puzzles 20-22 - Puzzle 20: 1D Convolution Op (PyTorch custom ops) - Puzzle 21: Embedding Op (coalesced vs non-coalesced) - Puzzle 22: Kernel Fusion and custom backward pass - Add glossary terms: autograd, embedding, dense vector * docs(i18n): Add Korean translations for puzzle 23 - Translate all 6 puzzle 23 documents: puzzle_23.md, elementwise.md, tile.md, vectorize.md, gpu-thread-vs-simd.md, benchmarking.md - Add SM (Streaming Multiprocessor) to GLOSSARY_KO.md * docs(i18n): Add Korean translations for puzzles 24-26 - Translate Part VII (Warp-level programming): puzzles 24-26 covering SIMT execution, warp.sum(), shuffle_down, broadcast, shuffle_xor, and prefix_sum - Add glossary terms: lockstep, stream compaction (원문 유지), predicate→프레디케이트, topology→토폴로지 (용어 목록) * docs(i18n): Add Korean translations for puzzle 27 - Translate all 4 files: puzzle_27.md, block_sum.md, block_prefix_sum.md, block_broadcast.md - Add PTX to GLOSSARY_KO.md as a preserved English term * docs(i18n): Add Korean translations for puzzles 28-29 - Puzzle 28: 비동기 메모리 연산과 복사 중첩 - Puzzle 29: GPU 동기화 기본 요소 - 다단계 파이프라인 조정 (barrier.md) - Double-Buffered Stencil 연산 (memory_barrier.md) - Add glossary terms: DRAM, SRAM, halo, mbarrier, thread specialization * docs(i18n): Add Korean translations for puzzle 32 - Translate puzzle 32 (Bank Conflicts) main page, shared memory bank theory, and conflict-free patterns - Add glossary terms: bank conflict → 뱅크 충돌, conflict-free (pattern) → 충돌 없는 (패턴) - Apply updated terminology consistently across all previously translated files (puzzles 13, 16, 24, 27, 30, 31, introduction, howto, SUMMARY) * docs(i18n): Add Korean translations for Part XI - Translate puzzle 33 (tensor core operations) and bonus challenge - Translate puzzle 34 (GPU cluster programming SM90+): - Main introduction page - Multi-block coordination basics - Cluster-wide collective operations - Advanced cluster algorithms - Add GEMM, MMA, swizzle, fragment terms to glossary * docs(i18n): Refine Korean translations across all puzzles Glossary: - Move "deadlock" and "guard" from untranslated to translated section (교착 상태, 가드) - Apply new terms across all translated files with correct particles (조사) Terminology consistency: - occupancy → 점유율 (puzzle 24, 29, 31) - 임곗값 → 임계값 (puzzle 25) - 리덕션 → reduction (puzzle 10) - 원자적 → atomic (puzzle 26) - 확산(broadcast) → broadcast (puzzle 02) Section title improvements: - "작성할 코드" → "완성할 코드" across all puzzles - "이 책의 사용법" → "퍼즐 사용 가이드" (howto.md) - Update introduction.md to match new howto title UI text translations: - "View full file:" → "전체 파일 보기:" (puzzle 10, 31-34) Bug fixes: - Fix broken links to puzzle_04 (add specific .md filename) - Fix Part IV → Part V typo (puzzle 22) - Fix "병합합" → "병합된" typo (puzzle 28) - Fix "반복법와" → "반복법과" typo (puzzle 29) - Fix "몇 배" → "수십 배" for accuracy (puzzle 30) - Fix 뱅크 충돌 particle mismatch (puzzle 32) - Fix numbered list continuity (puzzle 31) - Fix untranslated comment in code block (puzzle 32) - Fix "멈춰버릴때 때" → "멈춰버릴 때" (puzzle 09) * docs(i18n): Sync Korean translations with main branch Incorporate upstream changes from main into Korean translations: - Update documentation URLs from stdlib to std paths (477e5a0) - Add broadcasting definition to puzzle_05 (430a6f1) - Add hyperlink to first case in puzzle_09/second_case (0b65eaf) - Fix stray brackets and empty link syntax (477e5a0) - Update i18n-source-commit hashes across 33 files - Remove unused book-en and book-ko tasks from pixi.toml * chore: Reorganize book serve tasks - Add mdbook serve for per-language dev with auto-rebuild (book for English, book-ko for Korean) - Rename static file server to book-static for combined preview - Simplify clean task (mdbook clean already removes html/ko) * chore: Add multi-language mdbook serve with live reload - Add build_book.sh with CI/serve dual mode (--serve flag) to auto-discover languages from book/i18n/*/book.toml - Add serve_book.sh to orchestrate mdbook serve (English), mdbook watch (translations), and symlink restoration loop - Add livereload-poll.js for translation pages using Last-Modified header polling (localhost only) - Simplify pixi.toml: 3 build-book tasks → 1 script, remove book-ko/book-static tasks - Update .gitignore with book/html-* pattern for all translation build outputs * docs(i18n): Replace guard with 가드 per glossary guard is a translated term (가드) in GLOSSARY_KO.md, not a keep-in-English term. Fix 14 instances across 9 puzzle files and update SUMMARY.md title for Puzzle 3. * chore: Remove unnecessary bash -c wrapper in clean task pixi cmd already runs through a shell, so the bash -c wrapper around the clean command was redundant. * docs(i18n): Unify glossary and apply Korean terms - Merge "원문 유지 용어" section into single "용어 목록" - Convert all English terms to Korean across translated files - Add/update/remove glossary entries based on web research * docs(i18n): Apply glossary terms to Part I puzzles - Unify English terms to Korean per GLOSSARY_KO.md - Align puzzle titles with SUMMARY.md Korean titles - Use SUMMARY.md titles for cross-document link text * docs(i18n): Apply glossary terms to Part II puzzles * docs(i18n): Refine Part III and fix MathJax font - Translate and refine puzzle_16 matmul variants (naïve, roofline, shared_memory, tiled) - Fix MathJax CJK font fallback in non-English locales by forcing lang="en" on rendered elements and switching config to TeX-AMS_HTML (book/theme/index.hbs) - Fix inline LaTeX spacing before Korean characters * docs(i18n): Apply glossary terms to Part IV and fix MathJax bounding box - Apply glossary terms across Part IV puzzles (17-19, bonuses) and propagate to shared files (SUMMARY, introduction, howto) - Fix MathJax HTML-CSS bounding box miscalculation in non-English locales by setting lang="en" on <html> before MathJax startup in index.hbs, then restoring after rendering completes * docs(i18n): Apply glossary terms to Part V puzzles - Refine Puzzle 20, 21, 22 translations with unified glossary terms and natural Korean expressions - Update GLOSSARY_KO.md with new term entries - Update SUMMARY.md to reflect revised titles * docs(i18n): Apply glossary terms to Part VI puzzles - Apply glossary terms across all puzzle_23 sub-pages - Distinguish concept vs API naming: use Korean for concepts and English for Mojo API references - Match h1 page titles with SUMMARY.md sidebar titles while preserving original subtitle structure - Refine awkward translations for natural Korean * docs(i18n): Apply glossary terms to Part VII puzzles - Apply glossary terms to puzzles 24-26 (warp-level programming) - Fix LaTeX escape sequences in English source files (\_ → \_ and [ → \lbrack for correct MathJax rendering) * fix(i18n): Skip outdated warning for co-committed files When English source and translation files are modified in the same commit, the translation cannot reference the commit hash in advance. Compare the translation file's latest commit with the English source's latest commit to detect co-committed changes and suppress false outdated warnings. * docs(i18n): Apply glossary terms to Part VIII, IX puzzles - Part VIII: puzzle_27 (block_sum, block_prefix_sum, block_broadcast) - Part IX: puzzle_28, puzzle_29 (barrier, memory_barrier) * docs(i18n): Apply glossary terms to Part X, XI puzzles - Part X: Puzzle 30 (profiling), 31 (occupancy), 32 (bank conflicts) - Part XI: Puzzle 33 (tensor cores), 34 (clusters), bonus challenge - Fix single writer pattern term in glossary * fix(i18n): Add CJK search fallback for Korean site mdBook's elasticlunr strips non-ASCII characters via \W regex in both the Rust-side indexer and JS-side query pipeline, resulting in zero Korean tokens in the inverted index. The documentStore preserves original text, so this patch adds a fallback: - Monkey-patch elasticlunr.Index.prototype.search to detect CJK characters in queries and fall back to direct substring search against the documentStore - Non-CJK queries continue using the original elasticlunr search - Cache lowercased field text per document to avoid repeated toLowerCase() calls in inner loops - Respect field boosts and AND/OR boolean modes from search config
1 parent 6ce4d81 commit 48db149

File tree

119 files changed

+26581
-20
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+26581
-20
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ __pycache__
99
# Book artifacts
1010
book/book
1111
book/html
12+
book/html-*
1213

1314
book/src/puzzle_*/media/images/
1415
book/src/puzzle_*/media/texts/
@@ -23,6 +24,9 @@ book/src/puzzle_*/media/videos/*/partial_movie_files/
2324

2425
# rules
2526
.cursor/
27+
.claude/
28+
.agents/
29+
.agent/
2630

2731
# llvm
2832
*.ll

book/book.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,15 @@ additional-css = [
1111
"theme/css/custom.css",
1212
"theme/css/highlight.css",
1313
"theme/css/tabs.css",
14+
"theme/css/language-switcher.css",
1415
]
1516
additional-js = [
1617
"theme/mojolang.js",
1718
"theme/sidebar.js",
1819
"theme/solution.js",
1920
"theme/init-amplitude.js",
2021
"theme/tabs.js",
22+
"theme/language-switcher.js",
2123
]
2224
default-theme = "light"
2325
preferred-dark-theme = "ayu"

book/i18n/ko/GLOSSARY_KO.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
# 용어집 (Glossary)
2+
3+
이 문서는 Mojo GPU Puzzles 한국어 번역에서 사용되는 용어를 정리한 것입니다.
4+
번역 시 이 용어집에 정의된 표기를 따릅니다.
5+
6+
## 표기 원칙
7+
8+
- 국립국어원 외래어 표기법을 기준으로 하되, 업계에서 널리 사용되는 표기를 우선합니다
9+
- 코드, 함수명, 파일 경로, 명령어, 제품명, 약어(DRAM, SIMD 등)는 번역하지 않습니다
10+
- 각 퍼즐에서 처음 등장할 때 한국어(영어) 형식으로 표기하고, 이후에는 한국어만 사용합니다
11+
12+
---
13+
14+
## 용어 목록
15+
16+
| English | 한글 | 비고 |
17+
| --- | --- | --- |
18+
| address space | 주소 공간 | 메모리 영역 구분. Mojo에서 `AddressSpace.SHARED` 등으로 지정 |
19+
| arithmetic intensity | 산술 강도 | 데이터 1바이트당 수행하는 연산량 (FLOP/B). 루프라인 모델의 X축 |
20+
| autograd | 오토그래드 | PyTorch의 자동 미분 시스템. 역전파 기울기를 자동 계산 |
21+
| bank conflict | 뱅크 충돌 | 여러 스레드가 공유 메모리의 같은 뱅크에 한꺼번에 접근해서 생기는 충돌 |
22+
| barrier | 배리어 | 스레드들이 특정 지점에서 만나는 동기화 장벽 |
23+
| binary | 바이너리 | 컴파일된 실행 파일 |
24+
| binning | 구간 분류 | 데이터를 구간으로 나누는 것. 히스토그램 구간 분류 |
25+
| block | 블록 | 공유 메모리를 함께 쓰고 서로 동기화할 수 있는 스레드 묶음 |
26+
| blur | 블러 | 이미지의 픽셀 값을 이웃과 평균내어 흐릿하게 만드는 필터 |
27+
| boundary (check) | 경계 (검사) | 배열 인덱스가 유효한 경계 내에 있는지 확인하는 것 |
28+
| broadcast | 브로드캐스트 | 1. 작은 차원의 데이터를 큰 차원으로 확장하여 연산. 예: 벡터를 행렬로 확장<br>2. 데이터를 여러 스레드에 복사하는 연산 (`warp.broadcast()`) |
29+
| buffer overflow | 버퍼 오버플로우 | 버퍼 경계를 넘어서 데이터를 쓰는 메모리 오류 |
30+
| butterfly (network) | 버터플라이 (네트워크) | 나비 모양의 데이터 교환 패턴. 병렬 알고리즘에서 사용 |
31+
| chunk | 청크 | 데이터를 나눈 덩어리. 각 블록이 처리하는 연속된 데이터 조각 |
32+
| coalescing | 병합 | 여러 스레드의 메모리 접근을 하나로 묶어서 효율을 높이는 방법 |
33+
| column-major | 열 우선 | 열을 연속으로 저장하는 메모리 레이아웃. Fortran 방식 |
34+
| compute-bound | 연산 바운드 | 연산 처리량에 의해 성능이 제한되는 상태 |
35+
| convolution | 합성곱 | 이미지나 신경망에서 필터를 씌우는 연산 |
36+
| data locality | 데이터 지역성 | 자주 쓰는 데이터를 가까운 메모리에 두는 것 |
37+
| deadlock | 교착 상태 | 스레드들이 서로를 기다리며 영원히 멈춘 상태 |
38+
| dense vector | 밀집 벡터 | 대부분의 원소가 0이 아닌 벡터. 임베딩의 출력 형태 |
39+
| dereference | 역참조 | 포인터가 가리키는 메모리의 값에 접근하는 것 |
40+
| dot product | 내적 | 두 벡터의 원소별 곱의 합 |
41+
| double-buffering | 더블 버퍼링 | 두 버퍼를 번갈아 쓰는 최적화 기법 |
42+
| DRAM | DRAM | Dynamic Random Access Memory. GPU의 전역 메모리. 용량이 크지만 느림 |
43+
| element-wise | 요소별 | 배열의 각 요소에 개별적으로 수행하는 연산 |
44+
| embedding | 임베딩 | 이산적인 토큰 인덱스를 밀집 벡터 표현으로 변환하는 연산 |
45+
| fragment | 프래그먼트 | 텐서 코어에서 워프가 처리하는 행렬 조각 단위. MMA 연산의 입출력 |
46+
| fusion | 퓨전 | 커널을 합쳐서 실행하는 최적화 기법 |
47+
| fused / unfused | 퓨전 / 언퓨전 | 퓨전이 적용된 / 적용되지 않은. "언(un-)" + 외래어 조합 패턴 |
48+
| GEMM | GEMM | General Matrix Multiply. 범용 행렬 곱셈. GPU 행렬 연산의 핵심 알고리즘 |
49+
| global index | 전역 인덱스 | 전체 데이터에서의 위치. `block_dim * block_idx + thread_idx`로 계산 |
50+
| global memory | 전역 메모리 | GPU 어디서든 접근할 수 있는 메모리 |
51+
| grid | 그리드 | 전체 계산을 담당하는 블록들의 집합 |
52+
| guard | 가드 | 경계 검사를 위한 조건문. `if i < size` 형태 |
53+
| halo (region) | 헤일로 (영역) | 타일 경계를 넘어 확장되는 추가 데이터 영역. ghost cell, guard cell이라고도 함 |
54+
| hidden dimension | 은닉 차원 | 신경망 내부 표현의 차원 수. 트랜스포머에서 각 토큰의 벡터 크기 |
55+
| host code | 호스트 코드 | CPU에서 실행되는 코드. GPU 작업을 설정하는 부분 |
56+
| in-place (computation) | 직접 저장 (연산) | 별도 메모리를 할당하지 않고 기존 버퍼에 결과를 직접 기록하는 방식 |
57+
| JIT | JIT | Just-In-Time. 실행 시점에 코드를 컴파일하는 방식. 빌드 단계 없이 빠른 반복 가능 |
58+
| kernel | 커널 | GPU에서 여러 스레드가 함께 실행하는 함수 |
59+
| kernel code | 커널 코드 | GPU에서 병렬로 실행되는 코드 |
60+
| lane | 레인 | 워프 내 각 스레드의 위치 (0-31) |
61+
| latency | 지연 시간 | 작업이 완료될 때까지 기다리는 시간 |
62+
| LayoutTensor | LayoutTensor | Mojo의 다차원 배열 추상화 타입 |
63+
| lockstep | 록스텝 | 워프 내 모든 스레드가 동일 명령을 동시에 실행하는 모드. SIMT의 핵심 동작 방식 |
64+
| loop unrolling | 루프 전개 | 반복문을 펼쳐서 반복 오버헤드를 줄이는 컴파일러 최적화 기법 |
65+
| marshalling | 마샬링 | 서로 다른 시스템 간 데이터 형식을 변환하는 과정. PyTorch 텐서와 Mojo GPU 커널 사이의 데이터 변환 등 |
66+
| matrix multiplication | 행렬 곱셈 | 두 행렬을 곱하는 연산 |
67+
| mbarrier | mbarrier | Mojo의 memory barrier API. `mbarrier_init()`, `mbarrier_arrive()`, `mbarrier_test_wait()` 등. 기본 `barrier()`보다 세밀한 동기화 제어 |
68+
| memcheck | memcheck | compute-sanitizer의 메모리 위반 탐지 도구 |
69+
| memory alignment | 메모리 정렬 | 데이터를 특정 바이트 경계에 맞춰 배치하는 것 |
70+
| memory bandwidth | 메모리 대역폭 | 단위 시간당 전송할 수 있는 데이터 양 |
71+
| memory fence | 메모리 펜스 | 메모리 작업 순서가 뒤바뀌지 않도록 보장하는 장치 |
72+
| memory hierarchy | 메모리 계층 구조 | GPU 메모리의 계층적 구조 (글로벌 → 공유 → 레지스터) |
73+
| memory layout | 메모리 레이아웃 | 데이터가 메모리에 배치되는 방식 |
74+
| memory leak | 메모리 누수 | 할당된 메모리를 해제하지 않아 발생하는 문제 |
75+
| memory violation | 메모리 위반 | 잘못된 메모리 영역에 접근하는 오류 |
76+
| memory-bound | 메모리 바운드 | 메모리 대역폭에 의해 성능이 제한되는 상태 |
77+
| mixed precision | 혼합 정밀도 | FP16/BF16 입력 + FP32 누적처럼 정밀도를 혼합하는 기법 |
78+
| MMA | MMA | Matrix-Multiply-Accumulate. 텐서 코어가 수행하는 기본 연산. `D = A × B + C` 형태의 행렬 프래그먼트 연산 |
79+
| normalization | 정규화 | 값을 일정 범위로 조정하는 것 |
80+
| occupancy | 점유율 | SM당 활성 워프 수 대비 최대 가능 워프 수의 비율 |
81+
| offset | 오프셋 | 메모리 시작 위치로부터의 거리. 인덱스 계산에 사용 |
82+
| overlap | 중첩 | 여러 작업을 동시에 수행하는 것. 복사 중첩 |
83+
| padding | 패딩 | 배열 끝을 0이나 특정 값으로 채워 크기를 맞추는 것 |
84+
| parallel | 병렬 | 여러 작업을 동시에 처리하는 방식 |
85+
| partial block | 부분 블록 | 데이터 끝에서 블록 크기를 다 채우지 못한 블록 |
86+
| pooling | 풀링 | 윈도우 내 값들을 하나로 합치는 연산. max pooling, average pooling 등 |
87+
| predicate | 프레디케이트 | 조건의 참/거짓을 나타내는 값. 병렬 알고리즘에서 파티션 소속을 결정 |
88+
| prefix sum | 누적 합 | 배열에서 각 위치까지의 누적 합을 구하는 알고리즘 |
89+
| primitive | 기본 요소 | 프로그래밍의 기본 도구. 동기화 기본 요소 |
90+
| profiling | 프로파일링 | 프로그램에서 느린 부분을 찾아내는 성능 분석 |
91+
| PTX | PTX | Parallel Thread Execution. NVIDIA GPU의 가상 어셈블리 언어. 컴파일러가 생성하는 중간 표현 |
92+
| race condition | 경쟁 상태 | 여러 스레드가 같은 데이터에 동시에 접근해서 생기는 오류 |
93+
| racecheck | racecheck | compute-sanitizer의 경쟁 상태 탐지 도구 |
94+
| reduction | 리덕션 | 여러 값을 합계나 최댓값처럼 하나의 값으로 줄이는 연산 |
95+
| register blocking | 레지스터 블로킹 | 레지스터에 값을 누적하여 메모리 트래픽을 줄이는 최적화 기법 |
96+
| roofline (model) | 루프라인 (모델) | 하드웨어 한계 대비 성능을 분석하는 모델 |
97+
| row-major | 행 우선 | 행을 연속으로 저장하는 메모리 레이아웃. C/Mojo 기본 방식 |
98+
| sanitizer | 새니타이저 | GPU 코드의 메모리 오류, 경쟁 상태 등을 탐지하는 검사 도구 |
99+
| SAXPY | SAXPY | Single-precision Alpha times X plus Y. `y[i] = α * x[i] + y[i]` 형태의 BLAS Level 1 표준 연산 |
100+
| segmentation fault | 세그멘테이션 폴트 | 접근 권한이 없는 메모리 영역에 접근할 때 발생하는 오류 |
101+
| shared memory | 공유 메모리 | 같은 블록 안의 스레드들이 함께 쓰는 빠른 메모리 |
102+
| shuffle | 셔플 | 워프 내 스레드 간 데이터 교환 |
103+
| SIMD | SIMD | Single Instruction Multiple Data. 벡터 연산 방식 |
104+
| SIMT | SIMT | Single Instruction Multiple Thread. GPU 실행 모델 |
105+
| single writer pattern | 단일 쓰기 패턴 | 하나의 스레드만 쓰기를 담당하는 동기화 패턴 |
106+
| sliding window | 슬라이딩 윈도우 | 데이터 위를 이동하며 처리하는 고정 크기 창 |
107+
| SM | SM | Streaming Multiprocessor. GPU의 연산 단위. 여러 워프를 동시에 실행하는 프로세서 |
108+
| softmax | 소프트맥스 | 벡터를 확률 분포로 정규화하는 함수 |
109+
| SRAM | SRAM | Static Random Access Memory. GPU의 공유 메모리에 해당. 용량이 작지만 빠름 |
110+
| stack trace | 스택 추적 | 오류 발생 시점까지의 함수 호출 경로 |
111+
| stencil | 스텐실 | 이웃 데이터를 참조하는 연산 패턴 |
112+
| stream compaction | 스트림 컴팩션 | 프레디케이트를 만족하는 요소만 연속으로 재배치하는 병렬 알고리즘 |
113+
| stride | 스트라이드 | 메모리 접근이나 반복의 간격. 리덕션에서 매 단계마다 절반으로 줄이는 보폭 |
114+
| swizzle (pattern) | 스위즐 (패턴) | 공유 메모리의 뱅크 충돌을 피하기 위해 데이터 주소를 비트 연산으로 재배치하는 기법 |
115+
| synchronization | 동기화 | 스레드들이 발맞춰 실행되도록 맞추는 것 |
116+
| synccheck | synccheck | compute-sanitizer의 동기화 버그 탐지 도구 |
117+
| tensor core | 텐서 코어 | GPU의 행렬 연산 전용 하드웨어 |
118+
| thread | 스레드 | 하나의 데이터를 처리하는 가장 작은 실행 단위 |
119+
| thread divergence | 스레드 분기 | 같은 워프 내 스레드들이 서로 다른 분기를 타는 현상 |
120+
| thread specialization | 스레드 특화 | 스레드 그룹마다 서로 다른 알고리즘을 실행하는 패턴. 데이터 병렬 처리와 대비 |
121+
| tiling | 타일링 | 큰 데이터를 작은 조각으로 나눠서 처리하는 방법 |
122+
| topology | 토폴로지 | 통신 또는 연결 구조의 형태. 버터플라이 네트워크의 레인 간 데이터 교환 패턴 |
123+
| transpose | 전치 | 행렬의 행과 열을 뒤바꾸는 연산. \\(A^T\\)로 표기 |
124+
| Undefined Behavior | 미정의 동작 | 프로그램의 동작이 정의되지 않은 상태 |
125+
| Warp | 워프 | 32개 스레드가 한 묶음으로 함께 움직이는 GPU의 기본 단위 |
126+
| zero padding | 제로 패딩 | 배열 경계 밖을 0으로 채우는 합성곱 경계 처리 기법 |
127+
| zero-cost abstraction | 제로 코스트 추상화 | 추상화해도 성능 손실 없이 머신 코드로 컴파일됨 |
128+
129+
---
130+
131+
## 기여하기
132+
133+
용어 추가나 수정이 필요한 경우 이슈나 PR을 통해 제안해 주세요.

book/i18n/ko/book.toml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
[book]
2+
authors = ["Modular <hello@modular.com>", "Korean Translation"]
3+
language = "ko"
4+
src = "src"
5+
title = "Mojo 🔥 GPU 퍼즐"
6+
7+
[build]
8+
build-dir = "../../html/ko"
9+
create-missing = false
10+
11+
[output.html]
12+
additional-css = [
13+
"theme/css/custom.css",
14+
"theme/css/highlight.css",
15+
"theme/css/tabs.css",
16+
"theme/css/language-switcher.css",
17+
]
18+
additional-js = [
19+
"theme/mojolang.js",
20+
"theme/sidebar.js",
21+
"theme/solution.js",
22+
"theme/tabs.js",
23+
"theme/language-switcher.js",
24+
"theme/livereload-poll.js",
25+
"theme/js/cjk-search.js",
26+
]
27+
default-theme = "light"
28+
preferred-dark-theme = "ayu"
29+
smart-punctuation = true
30+
no-section-label = true
31+
git-repository-url = "https://github.com/modular/mojo-gpu-puzzles"
32+
mathjax-support = true
33+
favicon_svg = true
34+
35+
[output.html.search]
36+
enable = true
37+
38+
[preprocessor.links]
39+
renderers = ["html"]
40+
41+
[preprocessor.youtube]
42+
command = "python scripts/youtube_preprocessor.py"
43+
44+
[preprocessor.i18n-status]
45+
command = "python scripts/i18n_status_preprocessor.py"

0 commit comments

Comments
 (0)