Nvidia CUDA Compiler: Difference between revisions

Content deleted Content added
+C99
Line 1:
{{Infobox software
| name =
| title =
| logo = <!-- Image name is enough -->
| logo caption =
| logo_size =
| logo_alt =
| screenshot = <!-- Image name is enough -->
| caption =
| screenshot_size =
| screenshot_alt =
| collapsible =
| author = [[Nvidia]]
| developer =
| released = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| discontinued =
| latest release version =
| latest release date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| latest preview version =
| latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| programming language =
| status =
| operating system =
| programming language =
| platform =
| operating system =
| size =
| platform =
| language footnote =
| size =
| language count = <!-- DO NOT include this parameter unless you know what it does = -->
| language footnote =
| language count = <!-- DO NOT include this parameter unless you know what it does -->
| genre = [[compiler]]
| language footnote =
| license = [[proprietary software]]
| genre = [[compiler]]
| website = {{URL|httphttps://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#introduction}}
| license = [[proprietary software]]
| website = {{URL|http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#introduction}}
}}
 
''' 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 Corporation|accessdate=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>https{{Cite web|url=http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#c|title=CUDA C Programming Guide|website=docs.nvidia.com|language=en-cplusplusus|access-languagedate=2019-06-support28}}</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 PTX or object code directly. An executable with CUDA code requires: the CUDA core library (cuda) and the CUDA runtime library (cudart).
Line 49 ⟶ 48:
{{Reflist}}
# David B. Kirk, and Wen-mei W. Hwu. Programming massively parallel processors: a hands-on approach. Morgan Kaufmann, 2010.
# Nvidia Documentation on nvcc. httphttps://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/
# CUDPP. http://gpgpu.org/developer/cudpp