본문 바로가기
728x90

CUDA_Optimization2

[PYTHON] Flash Attention 2 성능 해결을 위한 PyTorch 네이티브 활용 방법과 3가지 핵심 차이 현대 딥러닝 아키텍처, 특히 트랜스포머(Transformer) 기반의 거대 언어 모델(LLM)을 개발할 때 가장 큰 병목은 어텐션 연산의 $O(N^2)$ 복잡도입니다. Flash Attention 2는 메모리 대역폭을 효율적으로 사용하여 이 문제를 혁신적으로 해결했습니다. 과거에는 복잡한 CUDA 커널을 직접 빌드해야 했지만, 이제는 PyTorch의 최신 기능을 통해 코드 한 줄로 이 강력한 기능을 사용할 수 있습니다. 본 가이드에서는 커스텀 커널 없이 실무에 바로 적용하는 7가지 방법을 심도 있게 다룹니다.1. Flash Attention 2의 핵심 원리와 성능상의 이점Flash Attention 2는 GPU의 SRAM과 HBM 간의 데이터 전송을 최소화하는 'Tiling' 및 'Recomputatio.. 2026. 4. 25.
[PYTORCH] 텐서 변형의 핵심인 view, reshape, transpose 3가지 차이점과 메모리 불연속성 해결 방법 PyTorch를 활용한 딥러닝 모델 설계 과정에서 가장 빈번하게 발생하는 런타임 에러 중 하나는 텐서의 Shape(형태) 불일치입니다. 특히 view(), reshape(), 그리고 transpose()는 겉보기에는 비슷해 보이지만, 내부적인 메모리 레이아웃(Memory Layout) 처리 방식에서 결정적인 차이를 보입니다. 본 포스팅에서는 이들의 메커니즘을 심층 분석하고 실무에서 발생하는 RuntimeError: input is not contiguous 문제를 해결하는 전략을 제시합니다.1. 텐서 변형 함수의 내부 메커니즘 분석PyTorch 텐서는 메모리 상에서 연속적인 블록(Contiguous Block)으로 저장됩니다. 하지만 연산 효율성을 위해 실제 데이터를 복사하지 않고 Stride(보폭) 값.. 2026. 4. 5.
728x90