태그: #compiler
GPU·LLM·MLOps·쿠버네티스, 그리고 마음가짐에 관한 글 · 43 편
동형암호 컴파일러 HEIR과 비용이라는 조건 — 발표문에 없는 숫자를 댓글이 채운 사례
Google이 동형암호용 오픈소스 컴파일러 툴체인 HEIR을 공개했습니다. 여기서 진짜 뉴스는 암호가 아니라 컴파일러입니다. 지금까지 동형암호 배포를 막아 온 것은 수학이 아니라 암호 전문가만 할 수 있던 파라미터 선택 작업이었기 때문입니다. 다만 발표문은 오버헤드 수치를 하나도 제시하지 않았고, 그 빈칸을 이 분야를 연구한 댓글 작성자들이 채웠습니다. 어떤 워크로드가 이 기술의 적용 대상이
2026-08-14 · 14 분 읽기 #cryptography#privacy#compiler#machine-learning#security타입 검사기를 통과한 두 서비스가 서로를 기다리며 멈출 때 — 코레오그래피라는 다른 접근
메모리 안전을 보장하는 언어를 써도 두 서비스가 서로의 메시지를 기다리며 멈추는 일은 막지 못합니다. 타입 검사기의 시야가 프로세스 하나에서 끝나기 때문입니다. 코레오그래피 프로그래밍은 시스템 전체를 하나의 프로그램으로 쓰고 컴파일러가 노드별 코드를 뽑아내게 해서 이 경계 자체를 없앱니다. 최근 공개된 Wyzer를 실마리로, 엔드포인트 프로젝션이 무엇이고 왜 데드락이 설계상 사라지는지, 그리
2026-08-09 · 14 분 읽기 #programming-languages#compiler#distributed-systems#type-systems#concurrencyGPU 컴파일러와 프레임워크 지형 — 그래프를 받아 커널을 만드는 하나의 문제, 층마다 다른 답
NVCC와 PTX부터 LLVM, MLIR, Triton, torch.compile, XLA, IREE, TVM까지를 하나의 지도 위에 올렸습니다. 이름이 다르고 소속이 다르지만 이들은 전부 같은 문제를 풉니다. 연산 그래프를 받아 실행 가능한 커널을 만드는 일입니다. 각 층이 그 문제의 어느 부분을 잘라 가져갔는지, 왜 층이 이렇게 많아졌는지, 그리고 엔지니어가 어떤 상황에서 어느 층까지 내
2026-08-02 · 39 분 읽기 #gpu#compiler#mlir#triton#pytorch커널을 쓰는 세 가지 층위 — CUDA C++, Triton, CUTLASS를 같은 문제로 비교하기
같은 GPU 커널을 손으로 쓰는 CUDA C++, 파이썬으로 타일 단위로 쓰는 Triton, 템플릿으로 조립하는 CUTLASS와 CuTe로 각각 접근할 때 무엇이 달라지는지 비교합니다. 행 단위 softmax를 CUDA C++와 Triton으로 실제로 짜서 코드량과 성능을 나란히 재고, 그 차이가 어디서 오는지 컴파일 파이프라인 수준에서 설명합니다. Triton이 커스텀 어텐션 커널의 사실상
2026-08-02 · 28 분 읽기 #triton#cuda#cutlass#gpu-kernel#compilerZig 0.16.0 — I/O를 인터페이스로 만든 릴리스, 그리고 그 청구서
2026년 4월 14일 발표된 Zig 0.16.0은 표준 라이브러리의 모든 입출력이 Io 인스턴스를 인자로 받도록 바꿨습니다. Allocator를 인자로 넘기던 Zig의 오래된 습관을 I/O에 그대로 적용한 것으로, 같은 소스 코드가 스레드 기반 구현 위에서도 이벤트 루프 위에서도 돌아가게 하려는 설계입니다. 하지만 릴리스 노트를 실제로 읽어 보면 완성된 구현체는 Io.Threaded 하나뿐
2026-07-16 · 43 분 읽기 #zig#systems-programming#async-io#compilerTriton Gluon — 컴파일러가 숨기던 레이아웃을 손으로 쓰는 언어
Gluon은 Triton과 같은 컴파일러 스택 위에 올라간 하위 레벨 GPU 언어로, Triton이 감춰 두던 레이아웃·공유 메모리·워프 특수화를 커널 작성자에게 그대로 넘깁니다. 존재 이유는 명확합니다 — Triton 컴파일러가 잘 못 뽑는 코드를 만났을 때, 지금까지는 손쓸 방법이 없었기 때문입니다. 이 글은 Gluon이 무엇을 노출하는지, BlockedLayout이 실제로 무엇을 뜻하는
2026-07-16 · 33 분 읽기 #gpu#triton#kernel#compiler#performanceZJIT의 Lightweight Frames — Ruby 4.1에서 메서드 프레임 푸시를 지우는 법과 그 대가
Ruby 4.0은 2025년 12월 25일에 ZJIT을 실었지만, 켜지지 않은 채로 실었습니다 — 바이너리에 컴파일돼 있을 뿐 기본 JIT은 여전히 YJIT입니다. 공식 릴리스 노트의 문장은 "ZJIT은 인터프리터보다 빠르지만 아직 YJIT만큼 빠르지는 않다"였고, 바로 다음 문장이 "Ruby 4.1 ZJIT을 기대해 달라"였습니다. 그 4.1을 겨냥한 작업의 중심에 Lightweight F
2026-07-16 · 34 분 읽기 #ruby#zjit#yjit#jit#compilerRust 1.97이 Volta 이전 GPU를 잘라냈다 — nvptx64 베이스라인 상향의 내막
Rust 1.97(2026년 7월 9일)은 nvptx64-nvidia-cuda 타깃의 최소 사양을 PTX ISA 7.0(CUDA 11 드라이버 이상)과 SM 7.0(Volta 이상)으로 올렸습니다. Maxwell·Pascal 세대 GPU와 CUDA 10 이하 드라이버는 이제 대상이 아닙니다. 이 글은 실제로 바뀐 숫자, 컴파일러 팀이 근거로 든 세 개의 구체적인 결함(디버그 심볼·아토믹 순서
2026-07-16 · 21 분 읽기 #rust#cuda#gpu#compiler#nvidiaReact Compiler가 Rust로 포팅됐다 — 머지된 것, 아직 아닌 것, 그리고 그 "10배"라는 숫자
2026년 6월 9일, React Compiler를 Rust로 포팅한 PR 36173이 facebook/react main에 머지됐습니다. 461개 파일에 12만 줄이 넘는 코드가 들어왔고, "Babel 플러그인으로 3배, 변환 로직 자체는 약 10배 빠르다"는 숫자가 곧바로 생태계를 돌기 시작했습니다. 그런데 정작 PR 본문에서 저자 Joseph Savona 본인은 그 숫자에 대해 "성능
2026-07-16 · 31 분 읽기 #react#rust#compiler#performance#frontendKotlin Swift export가 Alpha가 됐다 — Objective-C 다리를 걷어내는 중이지만, 아직 건너지는 마십시오
Kotlin Multiplatform이 iOS에서 치러 온 가장 큰 세금은 Objective-C 다리였습니다. Kotlin 코드가 Swift로 넘어가려면 반드시 Objective-C 헤더를 거쳐야 했고, 그 과정에서 Int?는 KotlinInt로 박싱되고, 제네릭은 클래스에만 남고, suspend 함수는 컴플리션 핸들러가 됐습니다. Swift export는 그 중간 다리를 없애고 Kotlin
2026-07-16 · 30 분 읽기 #kotlin#kotlin-multiplatform#swift#ios#compilerElixir 1.20의 점진 타입 시스템 — 어노테이션 없이 "검증된 버그"를 찾는다는 것의 실제
2026년 6월 3일 나온 Elixir v1.20은 2022년에 시작한 집합론적 타입 시스템의 첫 번째 마일스톤을 끝냈습니다. 이제 모든 Elixir 프로그램이 타입 어노테이션 한 줄 없이 점진적으로 타입 체크되고, 컴파일러가 가드·함수 본문·절 사이에서 타입을 추론해 "실행되면 반드시 런타임에 터지는" 위반과 죽은 코드를 찾아냅니다. 핵심은 dynamic() 타입인데, 다른 언어의 any(
2026-07-16 · 31 분 읽기 #elixir#type-system#beam#compiler#static-analysisClang 22의 MSVC ABI 변경 — vector deleting destructor와 아직 22.1.x에 남아 있는 delete[] 힙 손상
Clang 22.1.0(2026-02-24)은 MSVC ABI를 타깃할 때의 소멸자 코드 생성을 두 군데 바꿨습니다. 하나는 ::delete 처리를 MSVC와 맞춘 것이고, 다른 하나는 2014년에 열린 이슈를 11년 7개월 만에 닫은 vector deleting destructor 지원입니다. 둘 다 진짜 버그를 고치는 변경이지만, vftable 슬롯에 들어가는 심볼이 바뀌는 ABI 변경이
2026-07-16 · 29 분 읽기 #llvm#clang#cpp#compilerTypeScript 7이 GA됐다 — 8~12배는 진짜지만, 오늘 못 옮기는 사람들이 있다
2026년 7월 8일, TypeScript 7.0이 GA됐습니다. Go로 다시 쓴 네이티브 포트가 더 이상 별도 바이너리가 아니라 그냥 tsc입니다 — npm install -D typescript을 하면 그게 들어옵니다. Microsoft가 보고한 전체 빌드 속도 향상은 8~12배이고, VS Code 코드베이스 기준 125.7초에서 10.6초로 떨어졌습니다. 하지만 헤드라인이 가리는 두 가
2026-07-16 · 32 분 읽기 #typescript#compiler#tooling#build-systems#compile-times의견 있는 도구 — gofmt, gofumpt와 코드 스타일의 정치학
코드 포매팅은 왜 논쟁의 대상이었고, gofmt는 어떻게 그 논쟁을 끝냈을까요. gofmt와 더 엄격한 gofumpt, 그리고 prettier와 black 같은 다른 언어의 도구를 비교하며 의견 있는 도구가 팀과 코드베이스에 미치는 영향을 깊이 살펴봅니다.
2026-06-25 · 40 분 읽기 #compiler#go#gofmt#gofumpt#formatterGPU vs TPU vs ASIC — 2026 추론 전쟁
2026년 추론 워크로드를 두고 벌어지는 GPU·TPU·ASIC의 경쟁을 비교합니다. Google TPU v6 Trillium과 Ironwood, 급성장하는 클라우드 자체 추론 ASIC, 처리량·지연·비용·전력 트레이드오프, 그리고 CUDA와 XLA로 갈라지는 컴파일러 스택까지 다룹니다.
2026-06-16 · 43 분 읽기 #gpu#tpu#asic#inference#ai-hardware작은 언어의 매력 — Janet, Lua와 임베더블 스크립팅의 세계
Why Janet 글이 다시 HN 상위에 오르며 작은 임베더블 언어에 대한 관심이 부활하고 있습니다. Lua의 성공 사례부터 Janet의 설계 철학, C 임베딩 실전 예제, DSL 설계 입문, 프로덕션 도입 시 고려사항까지 작은 언어의 세계를 깊이 있게 탐험합니다.
2026-06-12 · 27 분 읽기 #janet#lua#embedded-scripting#dsl#programming-languagesRust 소유권과 빌림 체커 완벽 가이드 — Move, Borrow, Lifetime, Drop, Send/Sync, Pin, NLL, Polonius (2025)
Rust 소유권 시스템의 모든 것 — 1999년 Cyclone에서 출발한 affine type 이론, 소유권 이전과 move semantics, 공유/가변 borrow의 XOR 규칙, lifetime annotation과 elision, Non-Lexical Lifetimes(NLL)과 Polonius 차세대 체커, RAII와 Drop trait, Box/Rc/Arc/RefCell 같은 sm
2026-04-15 · 52 분 읽기 #rust#ownership#borrow-checker#lifetime#memory-safetyLLVM Deep Dive — 현대 컴파일러 인프라의 IR, Optimizer, Backend, MLIR 완전 정복 (2025)
Rust, Swift, Clang, Julia, Kotlin Native, WebAssembly. 이 모두의 공통점은 LLVM을 백엔드로 사용한다는 것입니다. 이 글은 LLVM의 내부를 처음부터 해부합니다. 3단 아키텍처(프론트엔드 → IR → 백엔드), SSA 기반 LLVM IR의 구조, 수백 개의 옵티마이저 패스들(InstCombine, GVN, LICM, 인라이너), SelectionD
2026-04-15 · 41 분 읽기 #llvm#compiler#mlir#clang#optimization컴파일러와 현대 언어 런타임 — LLVM, JIT, GC, V8 TurboFan/Maglev, Inline Caching, Escape Analysis, Rust Monomorphization 완벽 가이드 (2025)
코드 한 줄이 CPU에서 실행되기까지 벌어지는 모든 일. LLVM의 지배, V8의 4계층 JIT, Hidden Class와 Inline Caching, Escape Analysis, Mark & Sweep부터 ZGC까지 GC 계보, Go work-stealing 스케줄러, Rust Monomorphization, Python 3.13 Specializing Interpreter, WASM 런
2026-04-15 · 18 분 읽기 #compiler#runtime#llvm#jit#garbage-collectionJIT 컴파일 완전 가이드 2025: V8, JVM HotSpot, .NET, Tiered Compilation, 성능 분석
JIT 컴파일의 모든 것! 인터프리터 vs JIT vs AOT, V8(TurboFan/Maglev), JVM HotSpot(C1/C2/Graal), .NET Tiered, Tracing JIT vs Method JIT, 인라이닝/분기 예측/탈최적화, 성능 분석.
2026-04-15 · 18 분 읽기 #jit#compiler#v8#jvm#hotspot