„Nvidia CUDA Compiler“ – Versionsunterschied
[ungesichtete Version] | [ungesichtete Version] |
→See also: improved link |
WP:CITEVAR, added info to refs, ce |
||
Zeile 32: | Zeile 32: | ||
}} |
}} |
||
''' Nvidia CUDA Compiler''' ('''NVCC''') is a [[proprietary software|proprietary]] [[compiler]] by [[Nvidia]] intended for use with [[CUDA]]. CUDA code runs on both the [[CPU]] and [[GPU]]. NVCC separates these two parts and sends host code (the part of code which will be run on the [[CPU]]) to a [[C (programming language)|C]] compiler like [[GNU Compiler Collection|GCC]] or [[Intel C++ Compiler]] (ICC) or [[Microsoft Visual C++]] Compiler, and sends the device code (the part which will run on the GPU) to the GPU. The device code is further compiled by NVCC. NVCC is based on [[LLVM]].<ref>{{cite web|title=CUDA LLVM Compiler |
''' Nvidia CUDA Compiler''' ('''NVCC''') is a [[proprietary software|proprietary]] [[compiler]] by [[Nvidia]] intended for use with [[CUDA]]. CUDA code runs on both the [[CPU]] and [[GPU]]. NVCC separates these two parts and sends host code (the part of code which will be run on the [[CPU]]) to a [[C (programming language)|C]] compiler like [[GNU Compiler Collection|GCC]] or [[Intel C++ Compiler]] (ICC) or [[Microsoft Visual C++]] Compiler, and sends the device code (the part which will run on the GPU) to the GPU. The device code is further compiled by NVCC. NVCC is based on [[LLVM]].<ref>{{cite web|title=CUDA LLVM Compiler |url=https://developer.nvidia.com/cuda-llvm-compiler|publisher=NVIDIA Developer |access-date=Apr 6, 2016}}</ref> According to Nvidia provided documentation, nvcc in version 7.0 supports many language constructs that are defined by the [[C++11]] standard and a few [[C99]] features as well. In version 9.0 several more constructs from the [[C++14]] standard are supported.<ref>{{Cite web|url=https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html|title=CUDA C++ Programming Guide |website=NVIDIA Documentation Hub |language=en-us|access-date=2019-06-28}}</ref> |
||
Any source file containing CUDA language extensions (.cu) must be compiled with nvcc. NVCC is a compiler driver which works by invoking all the necessary tools and compilers like cudacc, g++, cl, etc. NVCC can output either C code (CPU Code) that must then be compiled with the rest of the application using another tool or [[Parallel Thread Execution|PTX]] or object code directly. An executable with CUDA code requires: the CUDA core library (cuda) and the CUDA runtime library (cudart). |
Any source file containing CUDA language extensions (.cu) must be compiled with nvcc. NVCC is a compiler driver which works by invoking all the necessary tools and compilers like cudacc, g++, cl, etc. NVCC can output either C code (CPU Code) that must then be compiled with the rest of the application using another tool or [[Parallel Thread Execution|PTX]] or object code directly. An executable with CUDA code requires: the CUDA core library (cuda) and the CUDA runtime library (cudart). |
||
Zeile 50: | Zeile 50: | ||
{{Reflist}} |
{{Reflist}} |
||
# David B. Kirk, and Wen-mei W. Hwu. Programming massively parallel processors: a hands-on approach. Morgan Kaufmann, 2010. |
# David B. Kirk, and Wen-mei W. Hwu. Programming massively parallel processors: a hands-on approach. Morgan Kaufmann, 2010. |
||
# {{Cite web |title=NVIDIA CUDA Compiler Driver NVCC |url=https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/ |url-status=live |archive-url=https://web.archive.org/web/20231013194328/https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/ |archive-date=Oct 13, 2023 |website=NVIDIA Documentation Hub}} |
|||
# Nvidia Documentation on nvcc. https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/ |
|||
# CUDPP. https://web.archive.org/web/20181117222643/http://gpgpu.org/developer/cudpp |
# {{Cite web |title=CUDPP |url=http://gpgpu.org/developer/cudpp |url-status=dead |archive-url=https://web.archive.org/web/20181117222643/http://gpgpu.org/developer/cudpp |archive-date=Nov 17, 2018 |website=GPGPU}} |
||
[[Category:Nvidia software]] |
[[Category:Nvidia software]] |
Version vom 12. Dezember 2023, 06:53 Uhr
Vorlage:Short description Vorlage:Infobox software
Nvidia CUDA Compiler (NVCC) is a proprietary compiler by Nvidia intended for use with CUDA. CUDA code runs on both the CPU and GPU. NVCC separates these two parts and sends host code (the part of code which will be run on the CPU) to a C compiler like GCC or Intel C++ Compiler (ICC) or Microsoft Visual C++ Compiler, and sends the device code (the part which will run on the GPU) to the GPU. The device code is further compiled by NVCC. NVCC is based on LLVM.[1] According to Nvidia provided documentation, nvcc in version 7.0 supports many language constructs that are defined by the C++11 standard and a few C99 features as well. In version 9.0 several more constructs from the C++14 standard are supported.[2]
Any source file containing CUDA language extensions (.cu) must be compiled with nvcc. NVCC is a compiler driver which works by invoking all the necessary tools and compilers like cudacc, g++, cl, etc. NVCC can output either C code (CPU Code) that must then be compiled with the rest of the application using another tool or PTX or object code directly. An executable with CUDA code requires: the CUDA core library (cuda) and the CUDA runtime library (cudart).
Other widely used libraries:
- CUBLAS: BLAS implementation
- CUFFT: FFT implementation
- CUDPP (Data Parallel Primitives): Reduction, Scan, Sort.
- Thrust: Reduction, Scan, Sort.
See also
- OpenCL
- Heterogeneous System Architecture
- CUDA binary (cubin) – a type of fat binary
References
- David B. Kirk, and Wen-mei W. Hwu. Programming massively parallel processors: a hands-on approach. Morgan Kaufmann, 2010.
- NVIDIA CUDA Compiler Driver NVCC. In: NVIDIA Documentation Hub.
- CUDPP. In: GPGPU. Archiviert vom am 17. November 2018 .
- ↑ CUDA LLVM Compiler. NVIDIA Developer, abgerufen am 6. April 2016.
- ↑ CUDA C++ Programming Guide. In: NVIDIA Documentation Hub. Abgerufen am 28. Juni 2019 (amerikanisches Englisch).