728x90 deep-learning-optimization2 [PYTORCH] 딥러닝 성능의 핵심 : CPU-GPU 텐서 이동 방법 2가지와 최적화 해결 가이드 파이토치(PyTorch)를 이용해 딥러닝 모델을 개발할 때, 우리는 데이터가 어디에 존재하는지에 대해 끊임없이 고민해야 합니다. 수많은 행렬 연산이 필요한 딥러닝 학습과 추론에서 CPU(Central Processing Unit)와 GPU(Graphics Processing Unit, 특히 CUDA 기반) 간의 텐서(Tensor) 이동은 선택이 아닌 필수입니다. 하지만 단순히 "움직인다"는 것만으로는 부족합니다. 딥러닝 파이프라인에서 가장 흔하게 발생하는 성능 병목 구간이 바로 이 CPU-GPU 간의 데이터 전송(PCIe 버스를 통한)이기 때문입니다. "왜 내 모델은 GPU를 쓰는데도 느릴까?"라는 질문의 해답은 높은 확률로 비효율적인 데이터 이동에 있습니다. 이 글에서는 파이토치에서 텐서의 디바이스를 .. 2026. 4. 5. [PYTORCH] 텐서 슬라이싱 메모리 공유 문제 해결 및 효율적인 복사 방법 3가지 파이토치(PyTorch)를 사용하는 딥러닝 엔지니어라면 반드시 직면하게 되는 '뷰(View)'와 '카피(Copy)'의 메커니즘을 심층 분석하고, 예기치 않은 데이터 변형을 막는 실무적인 해결 방법을 제시합니다.1. 서론: 왜 슬라이싱은 위험할 수 있는가?파이토치에서 텐서 조작은 모델의 성능과 직결됩니다. 특히 대용량 데이터셋을 다룰 때 메모리 효율성을 극대화하기 위해 파이토치는 '메모리 공유(Memory Sharing)' 방식을 채택합니다. 슬라이싱(Slicing)을 통해 생성된 새로운 텐서는 원본과 동일한 메모리 저장 공간(Storage)을 참조하는 경우가 많으며, 이를 '뷰(View)'라고 부릅니다. 이러한 설계는 속도 면에서 큰 이점을 주지만, 슬라이싱된 텐서의 값을 수정했을 때 원본 데이터까지 함.. 2026. 4. 5. 이전 1 다음 728x90