Kompilator Nvidia CUDA
Oryginalni autorzy | Nvidia |
---|---|
Typ | Kompilator |
Licencja | Własne oprogramowanie |
Strona internetowa |
Nvidia CUDA Compiler ( NVCC ) to zastrzeżony kompilator firmy Nvidia przeznaczony do użytku z CUDA . Kod CUDA działa zarówno na CPU , jak i GPU . NVCC oddziela te dwie części i wysyła kod hosta (część kodu, która zostanie uruchomiona na procesorze ) do kompilatora C , takiego jak GCC lub Intel C++ Compiler (ICC) lub Microsoft Visual C++ Kompilator i wysyła kod urządzenia (część, która będzie działać na GPU) do GPU. Kod urządzenia jest dalej kompilowany przez NVCC. NVCC jest oparty na LLVM . Zgodnie z dokumentacją dostarczoną przez Nvidię, nvcc w wersji 7.0 obsługuje wiele konstrukcji językowych zdefiniowanych przez C++ 11 , a także kilka funkcji C99 . W wersji 9.0 obsługiwanych jest kilka innych konstrukcji ze standardu C++14 .
Każdy plik źródłowy zawierający rozszerzenia językowe CUDA (.cu) musi zostać skompilowany z nvcc. NVCC to sterownik kompilatora, który działa poprzez wywoływanie wszystkich niezbędnych narzędzi i kompilatorów, takich jak cudacc, g++, cl itp. NVCC może generować kod C (kod procesora), który następnie musi zostać skompilowany z resztą aplikacji przy użyciu innego narzędzia lub PTX lub kod obiektowy bezpośrednio. Plik wykonywalny z kodem CUDA wymaga: biblioteki podstawowej CUDA (cuda) oraz biblioteki wykonawczej CUDA (cudart).
Inne powszechnie używane biblioteki:
- CUBLAS: Implementacja BLAS
- CUFFT: Implementacja FFT
- CUDPP (Data Parallel Primitives): redukcja, skanowanie, sortowanie.
- Ciąg: redukcja, skanowanie, sortowanie.
Zobacz też
- OpenCL
- Heterogeniczna architektura systemu
- Binarny CUDA (cubin) – rodzaj binarnego fatu
- David B. Kirk i Wen-mei W. Hwu. Programowanie masowo równoległych procesorów: podejście praktyczne. Morgana Kaufmanna, 2010.
- Dokumentacja Nvidii na nvcc. https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/
- CUDPP. https://web.archive.org/web/20181117222643/http://gpgpu.org/developer/cudpp