Компиляция с помощью компилятора CUDA
Узнайте, как компилятор разделяет код для хоста и устройства.
«Компиляция с помощью компилятора CUDA» — бесплатный урок CUDA Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения 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 helloTargeting 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 helloCompute 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 helloLinking 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 appQuick 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. 🎯
Часто задаваемые вопросы
Урок «Компиляция с помощью компилятора CUDA» бесплатный?
Да — полный текст урока «Компиляция с помощью компилятора CUDA» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CUDA Academy, подпишись на CoddyKit PRO. Курс CUDA Academy содержит 4 уроков всего.
Чему я научусь в уроке «Компиляция с помощью компилятора CUDA»?
Узнайте, как компилятор разделяет код для хоста и устройства. Ты практикуешь CUDA Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать CUDA Academy?
Предыдущий опыт не требуется. CUDA Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Компиляция с помощью компилятора CUDA»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке CUDA Academy?
Да. Каждый урок CUDA Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Версии драйвера, среды выполнения и набора инструментов
- Профессиональная работа с nvidia-smi
- Компиляция с помощью компилятора CUDA
- Первое знакомство с GPU: Ваш первый файл .cu