🏠 홈
벤치마크
📊 모든 벤치마크 🦖 공룡 v1 🦖 공룡 v2 ✅ 할 일 목록 앱 🎨 창의적인 자유 페이지 🎯 FSACB - 궁극의 쇼케이스 🌍 번역 벤치마크
모델
🏆 톱 10 모델 🆓 무료 모델 📋 모든 모델 ⚙️ 킬로 코드 모드
리소스
💬 프롬프트 라이브러리 📖 AI 용어 사전 🔗 유용한 링크
Trung bình

고성능 GPU 커널을 위한 메모리 액세스 병합 최적화

#cuda #gpu computing #memory optimization #parallel computing #hpc

CUDA 환경에서 대규모 행렬 연산을 수행할 때, 글로벌 메모리 액세스 패턴을 최적화하여 메모리 대역폭 병목 현상을 해소하고 워프(Warp) 내의 메모리 트랜잭션 수를 최소화하는 방법을 분석하십시오.

NVIDIA GPU 아키텍처(예: Ampere 또는 Hopper)를 사용하여 희소 행렬-밀집 행렬 곱셈(SpMM) 연산을 최적화하려고 합니다. 현재 구현된 커널의 성능 프로파일링 결과, 글로벌 메모리 로드/스토어 명령어의 실행 시간이 전체 실행 시간의 70% 이상을 차지하는 것으로 확인되었습니다. 다음 사항을 고려하여 커널 코드를 최적화하는 전략을 제시하십시오. 1. **Coalesced Access 구현**: 불연속적인 메모리 주소를 갖는 희소 행렬의 원소에 접근할 때, 쓰레드 블록과 워프의 스레드 배치를 재조정하여 메모리 액세스를 병합(Coalescing)하는 방법을 설계하십시오. 2. **Shared Memory 활용**: 자주 참조되는 데이터를 Shared Memory에 로드하여 글로벌 메모리 접근 횟수를 줄이는 Tiling 기법을 적용하고, Shared Memory 뱅크 충돌(Bank Conflict)을 피하는 인덱싱 방식을 제시하십시오. 3. **벡터화된 메모리 로드**: `float4` 또는 `ldg` 명령어와 같은 벡터화된 로드 명령어를 사용하여 명령어 오버헤드를 줄이고 대역폭 효율을 극대화하는 방법을 비교 분석하십시오.