NVIDIA/cccl

CUDA Core Compute Libraries

해결하는 문제

CUDA C++ 개발자는 고성능 병렬 알고리즘과 표준 라이브러리 추상화가 필요하지만, 이전에는 여러 독립된 라이브러리에 분산되어 있었습니다. CCCL은 이러한 핵심 구성 요소를 하나의 리포지토리로 통합하여 개발을 간소화하고, 안전하고 효율적이며 이식 가능한 CUDA 코드를 작성하기 쉽게 만듭니다.

작동 방식

CCCL은 헤더만 있는 컬렉션으로 세 가지 핵심 라이브러리를 통합합니다.

  • Thrust: 고수준 C++ 병렬 알고리즘 라이브러리로, GPU와 멀티코어 CPU 간의 생산성 향상과 성능 이식성을 제공합니다.
  • CUB: 낮은 수준의 CUDA 전용 라이브러리로, "빛의 속도" 병렬 알고리즘에 초점을 맞추며, 사용자 정의 커널을 위한 장치 전체 및 협업(블록/워프 단위) 빌딩 블록을 제공합니다.
  • libcudacxx: CUDA C++ 표준 라이브러리로, 호스트 및 디바이스 코드 양쪽에서 C++ 표준 라이브러리 기능을 구현하고, 원자 연산 및 동기화 프리미티브와 같은 CUDA 고유의 하드웨어 기능에 대한 추상화를 제공합니다.

대상 사용자

NVIDIA GPU에서 병렬 컴퓨팅을 위한 표준화되고 고성능의 도구 세트가 필요한 CUDA C++ 개발자입니다.

주요 특징

  • 통합 리포지토리: Thrust, CUB, libcudacxx를 하나로 통합하여 보다 일관된 개발 경험을 제공합니다.
  • 헤더 전용: 사전 컴파일된 바이너리가 필요 없어 빌드 시스템에 간단히 통합할 수 있습니다.
  • 성능 이식성: 다양한 GPU 아키텍처에서 효율적으로 실행되며, 일부 경우 멀티코어 CPU에서도 작동합니다.
  • 광범위한 호환성: 여러 CUDA Toolkit 버전, 호스트 컴파일러(GCC, MSVC), C++ 언어 표준(C++17, C++20)을 지원합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트