0Pricing
CUDA Academy · 课时

使用 nvcc 编译

了解 nvcc 如何拆分主机端和设备端代码

使用 nvcc 编译 是 CoddyKit 上的免费 CUDA Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 CUDA Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 CUDA Academy 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

Meet nvcc

The CUDA compiler is called nvcc. It takes your .cu file with mixed CPU and GPU code and turns it into one runnable program. 🛠️

Two Kinds of Code

A .cu file holds two worlds: host code that runs on the CPU and device code that runs on the GPU. nvcc must handle each one differently.

The Great Split

nvcc splits your source automatically. It hands the host portions to your normal C++ compiler and keeps the device portions for itself.

Compiling Device Code

For the GPU side, nvcc generates a special assembly called PTX, then turns it into machine code your specific GPU can execute.

The Host Compiler

nvcc does not compile CPU code itself. It quietly calls your system's host compiler, like g++ or clang, to handle the ordinary C++.

Your First Build Command

Compiling looks just like g++. Point nvcc at your .cu file and name the output with the -o flag.

nvcc hello.cu -o hello

Targeting an Architecture

The -arch flag tells nvcc which GPU generation to build for. Matching it to your card produces faster, fully optimized device code.

nvcc -arch=sm_80 hello.cu -o hello

Compute Capability

That sm number is a compute capability, a label for a GPU's feature set. sm_80 means an Ampere card; older cards use smaller numbers.

Fatbins for Many GPUs

nvcc can pack code for several architectures into one fatbinary, so the same executable runs well on different GPUs without rebuilding.

Familiar Optimization Flags

Many g++ habits carry over. nvcc accepts -O levels and -g for debugging, passing them along to the right compiler stage.

nvcc -O3 hello.cu -o hello

Linking CUDA Libraries

Need a tuned library like cuBLAS? You link it just as in g++, adding the library name with an -l flag on the nvcc command.

nvcc app.cu -lcublas -o app

Quick Check

Let us check how nvcc divides the work.

Recap

You learned that nvcc splits a .cu file, compiles device code to GPU machine code, and hands host code to g++. The -arch flag targets your card. 🎯

常见问题解答

「使用 nvcc 编译」课时是免费的吗?

是的 — 「使用 nvcc 编译」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 CUDA Academy 课程的其余内容,请升级到 CoddyKit PRO。 CUDA Academy 课程共包含 4 节课。

「使用 nvcc 编译」这节课中我会学到什么?

了解 nvcc 如何拆分主机端和设备端代码 你通过在浏览器中直接运行的动手代码来练习 CUDA Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 CUDA Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 CUDA Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「使用 nvcc 编译」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 CUDA Academy 课中编写并运行代码吗?

能。每节 CUDA Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 驱动程序、运行时与工具包版本
  2. 像专家一样读取 nvidia-smi
  3. 使用 nvcc 编译
  4. GPU 入门:您的第一个 .cu 文件
← 返回 CUDA Academy