익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
CUDA
편집하기 (부분)
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
== 유사 기술 == CUDA와 비슷한 GPGPU 기술로 OpenCL과 DirectCompute가 있지만, 이들은 표준을 기준으로 만들어졌기 때문에 로우 레벨 API의 하드웨어에 있는 고급 기능까지 사용하여 한계까지 성능을 끌어내기는 어렵다. 즉, 다른 기술은 D3D API 등을 경유해야 하므로 시간이 걸리지만, CUDA는 바로 하드웨어를 제어할 수 있다. 하지만 이는 CUDA의 단점으로도 이어지는데, 그래픽 기능과의 연동을 전제로 만들어진 DirectCompute에 비해 그래픽 출력 용도로 사용할 때 오버헤드가 커진다. 그래픽 카드의 GPU는 대량의 데이터에 한 가지 연산을 적용하는 경우가 많기 때문에 단순화된 연산 유닛(코어)을 천여 개씩 탑재하고 있다. 따라서 SIMD(Single Instruction Multiple Data) 형태의 병렬화가 가능한 연산에 GPU를 활용해 속도를 올리려는 시도는 예전부터 있어왔다. 그러나 원래 그래픽을 처리하라고 설계된 그래픽스 파이프라인을 가지고 일반적인 병렬 연산을 수행하는 것은 매우 골치 아픈 일이었다. 프로그래머가 일일이 GPU의 세부 사항을 신경 써야 했기 때문이다. CUDA 프로그램은 스트림 프로세싱에 기반하며, C/C++ 언어에 동시에 실행할 쓰레드 개수를 선언하는 CUDA 전용 문법을 추가하여 작성된다. CUDA 코드는 대략 GPU 안에서만 돌아가는 함수(커널이라고 부른다)를 호스트(CPU)에서 호출하는 형태로 되어 있다. CUDA는 GPU의 메모리 모델을 추상화하여 좀 더 편리하게 GPU를 사용할 수 있도록 했다. 그러나 여전히 CUDA로 최대 성능을 얻으려면 GPU 메모리 구조에 대한 이해가 필요하다. Windows에 한정하여 CUDA 프로그래밍의 귀찮음을 덜어주기 위해 만들어진 BSGP(Bulk-Synchronous GPU Programming)라는 것도 존재한다. BSGP는 CUDA의 기계어 명령 번역을 사용한 별도의 언어로, 레이 트레이싱 같은 coherence가 낮은 작업에서는 CUDA보다 성능이 좋다. 다만 BSGP가 만능은 아니다. 메모리 참조 연속성이 강한 작업에서는 CUDA보다 성능이 떨어진다. 최근에는 CUDA를 보완한 OpenACC가 등장하였다. OpenACC는 더 많은 추상화를 제공하여 코딩하기 편리하다고 알려져 있다. 마이크로소프트는 C++ AMP라는 것을 만들었으며, OpenACC의 DirectCompute 버전 정도로 볼 수 있다. 그러나 여전히 일반 프로그래머가 사전 지식 없이 쉽게 접근하기는 어려운 수준이다. 다만 예전보다 진입 장벽이 많이 낮아졌다고 할 수 있다. R337 드라이버 이후부터는 GeForce 제품군에서 CUDA 기반 비디오 인코딩/디코딩 라이브러리가 삭제되었다. 이는 NVENC를 밀기 위해서인데, 이전의 CUDA 인코더를 대체하는 것이다. Tesla나 Quadro 제품군은 정상적으로 사용이 가능하다. 이로 인해 CUDA 가속을 사용하는 코덱의 사용이 불가능해지거나, 이전 라이브러리 파일을 따로 넣지 않으면 미디어 편집 프로그램들에서의 호환성에 문제가 생겼다. 딥러닝을 지원하는 여러 라이브러리도 CUDA와 함께 제공된다. cuDNN, Convolution 연산을 더 빠르게 만들어주는 cuFFT, 선형대수 모듈인 cuBLAS 등 대부분의 필요한 라이브러리가 구현되어 있다. 그러나 여전히 사용은 어렵다. TensorFlow나 PyTorch와 같은 프레임워크가 이러한 라이브러리들을 사용한다. CUDA와 호환되는 레이어로는 AMD의 ROCm이나 ZLUDA, 인텔의 oneAPI가 있다. 그러나 이에 위기감을 느꼈는지 CUDA 11.5 이상의 최신 버전부터 번역 레이어(리버스 엔지니어링)를 금지하는 조항이 라이선스에 규정되어 있다.
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록