- [A.I System Programming] B1: Tìm hiểu lại C Core
- [A.I System Programming] B2: Tìm hiểu C Memory/Pointer
- [A.I System Programming] B3: Lịch sử của máy tính
- [A.I System Programming] B4: Motivation của GPU
- [A.I System Programming] B5: Chương trình Cuda C
- [A.I System Programming] B6: Cài đặt các công cụ và nền tảng cho CUDA Window
1. Kiểm tra yêu cầu hệ thống
Trước khi bắt đầu, bạn cần xác nhận phần cứng và hệ điều hành đáp ứng các tiêu chuẩn sau:
- GPU: Phải sử dụng GPU NVIDIA hỗ trợ CUDA. Kiểm tra bằng cách mở Device Manager -> Display adapters.
![[A.I System Programming] B6: Cài đặt các công cụ và nền tảng cho CUDA Window 10 image 116 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2026/03/image-116.png)
![[A.I System Programming] B6: Cài đặt các công cụ và nền tảng cho CUDA Window 11 image 117 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2026/03/image-117.png)
Display Adapter cho thấy đang sử dụng GPU NVIDIA
- Hệ điều hành: Windows 10 hoặc Windows 11 (phiên bản 64-bit).
- Driver: NVIDIA Driver phải ở phiên bản mới nhất để hỗ trợ các tập lệnh CUDA hiện đại.
2. Cài đặt Môi trường Phát triển (Visual Studio & VS Code)
Cài đặt Visual Studio
- Truy cập trang chủ Microsoft và tải Visual Studio (https://visualstudio.microsoft.com/downloads/)
- Trong quá trình cài đặt, tại tab Workloads, bạn bắt buộc phải tích chọn mục Desktop development with C++.
![[A.I System Programming] B6: Cài đặt các công cụ và nền tảng cho CUDA Window 12 vscpp concierge choose workload - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2026/03/vscpp-concierge-choose-workload-1024x571.gif)
- Nếu thiếu thành phần này, trình biên dịch
nvcccủa CUDA sẽ không tìm thấycl.exevà không thể build project.
3. Lựa chọn phiên bản CUDA Toolkit (Local vs. Network)
Khi truy cập trang tải NVIDIA CUDA Downloads, bạn sẽ phải chọn giữa hai loại bộ cài đặt:
| Loại Installer | Đặc điểm |
| Network Installer | Dung lượng tải về ban đầu rất nhỏ. Quá trình cài đặt sẽ tải các thành phần cần thiết từ server của NVIDIA. |
| Local Installer | Dung lượng lớn (thường > 2GB). Chứa toàn bộ các thành phần cần thiết để cài đặt offline. |
Quy trình cài đặt CUDA Toolkit
Khi khởi chạy tệp tin cài đặt (ví dụ: cuda_13.2.0_windows.exe), trình cài đặt sẽ giải nén vào một thư mục tạm thời. Sau đó, giao diện chính sẽ xuất hiện:
![[A.I System Programming] B6: Cài đặt các công cụ và nền tảng cho CUDA Window 13 image 118 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2026/03/image-118.png)
- Kiểm tra tính tương thích: Trình cài đặt sẽ quét hệ thống để đảm bảo GPU và phiên bản Windows được hỗ trợ.
- Lựa chọn chế độ cài đặt (Options):
- Express (Recommended): Cài đặt toàn bộ các thành phần mặc định, bao gồm Driver, Toolkit, và Visual Studio Integration.
- Custom (Advanced): Cho phép chọn cụ thể các thành phần.
- Visual Studio Integration: Nếu thấy thông báo về Visual Studio, hãy đảm bảo rằng Visual Studio đã được đóng hoàn toàn. CUDA sẽ tự động cài đặt các template dự án và công cụ build vào Visual Studio.
- Hoàn tất: Sau khi cài đặt xong, trình cài đặt sẽ liệt kê các thành phần đã được thêm vào hệ thống.
Xác minh cài đặt (Verification)
Việc cài đặt thành công trên giao diện không đồng nghĩa với việc các biến môi trường đã được nhận diện chính xác. Bạn cần thực hiện kiểm tra qua Command Prompt (cmd) hoặc PowerShell.
Kiểm tra trình biên dịch (nvcc)
Mở terminal và gõ lệnh:
Bash
nvcc --version
Nếu hệ thống trả về thông tin phiên bản (ví dụ: Cuda compilation tools, release 13.2, V13.2.xx), nghĩa là trình biên dịch CUDA đã sẵn sàng. Nếu nhận lỗi “command not found”, bạn cần kiểm tra lại biến môi trường PATH.
Kiểm tra phần cứng và Driver (nvidia-smi)
Gõ lệnh:
Bash
nvidia-smi
Lệnh này sẽ hiển thị bảng thông số GPU hiện tại, bao gồm:
- Tên GPU (ví dụ: RTX 4070).
- Phiên bản Driver hiện tại.
- CUDA Version: Đây là phiên bản CUDA tối đa mà Driver hiện tại hỗ trợ (không nhất thiết phải trùng với phiên bản Toolkit bạn vừa cài, nhưng phải lớn hơn hoặc bằng).
![[A.I System Programming] B6: Cài đặt các công cụ và nền tảng cho CUDA Window 14 image 119 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2026/03/image-119-1024x604.png)
Để lập trình CUDA, bạn không nên tạo dự án C++ thông thường mà nên sử dụng Template có sẵn của NVIDIA để các thiết lập về thư viện (Library) và đường dẫn (Include Path) được tự động cấu hình.
Các bước thực hiện:
- Mở Visual Studio.
- Chọn Create a new project.
- Trong ô tìm kiếm, gõ từ khóa “CUDA”.
- Chọn Template có tên CUDA [Phiên bản] Runtime (Ví dụ: CUDA 13.2 Runtime). Nhấn Next.
![[A.I System Programming] B6: Cài đặt các công cụ và nền tảng cho CUDA Window 15 image 120 - quochung.cyou PTIT](https://quochung.cyou/wp-content/uploads/2026/03/image-120.png)
- Đặt tên dự án và nhấn Create.
Giải thích về Template:
- CUDA Runtime: Đây là mẫu dự án đã được tích hợp sẵn các “Build Customizations”. Nó cho phép Visual Studio hiểu các tệp tin có đuôi
.culà tệp mã nguồn CUDA và cần dùng trình biên dịchnvccthay vì trình biên dịch C++ tiêu chuẩn. - Nếu bạn không thấy Template này, nghĩa là bước cài đặt CUDA Toolkit trước đó chưa tích hợp thành công vào Visual Studio. Bạn cần chạy lại bộ cài CUDA
Viết mã thử nghiệm “Hello World” từ GPU
Khi dự án được tạo, mặc định sẽ có một tệp kernel.cu. Bạn hãy xóa nội dung cũ và thay bằng đoạn mã dưới đây để kiểm tra khả năng thực thi song song:
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <stdio.h>
// Kernel chạy trên GPU
__global__ void helloFromGPU() {
printf("Hello World từ GPU! Block: %d, Thread: %d\n", blockIdx.x, threadIdx.x);
}
int main() {
printf("Hello World từ CPU!\n");
// Chạy Kernel với 2 Block, mỗi Block có 5 Thread (tổng cộng 10 luồng song song)
helloFromGPU<<<2, 5>>>();
// Chờ GPU hoàn thành công việc trước khi kết thúc chương trình CPU
cudaError_t err = cudaDeviceSynchronize();
if (err != cudaSuccess) {
printf("Lỗi CUDA: %s\n", cudaGetErrorString(err));
return 1;
}
return 0;
}Biên dịch và Chạy (Build & Run)
- Chọn cấu hình: Trên thanh công cụ, đảm bảo bạn đang chọn x64 (CUDA hiện tại không còn hỗ trợ x86/32-bit).
- Build: Nhấn
Ctrl + Shift + Bđể biên dịch. - Run: Nhấn
Ctrl + F5để chạy không debug.
Kết quả mong đợi: Màn hình console sẽ hiển thị dòng “Hello World từ CPU!” trước, sau đó là 10 dòng “Hello World từ GPU!” với các chỉ số Block và Thread khác nhau.
Xử lý lỗi “cudaSetDevice failed!”
Nếu bạn chạy chương trình và nhận được thông báo lỗi:
cudaSetDevice failed! Do you have a CUDA-capable GPU installed?addWithCuda failed!...exited with code 1 (0x1).
Đây là dấu hiệu cho thấy CUDA Runtime không thể khởi tạo hoặc giao tiếp với GPU. Nguyên nhân thường nằm ở một trong ba trường hợp sau:
Trường hợp 1: Driver NVIDIA quá cũ (Lỗi phổ biến nhất)
Bộ cài CUDA Toolkit thường đi kèm với một bản Driver nhất định. Tuy nhiên, nếu bạn cài bản CUDA Toolkit mới (ví dụ 12.x hoặc 13.x) nhưng Driver trên máy vẫn là bản cũ từ nhiều năm trước, GPU sẽ không hiểu được các tập lệnh mới. (Điều này có thể kiểm tra ở đoạn thử nghiệm lệnh nvidia-smi và nvcc ở bước trước)
- Cách khắc phục: Truy cập NVIDIA Driver Downloads. Chọn đúng dòng Card đồ họa của bạn và tải bản Game Ready Driver hoặc Studio Driver mới nhất. Cài đặt và khởi động lại máy.
Trường hợp 2: Lệch phiên bản giữa CUDA Toolkit và Driver
Mỗi phiên bản CUDA Toolkit yêu cầu một phiên bản Driver tối thiểu (Minimum Driver Version).
- Ví dụ: CUDA 12.x yêu cầu Driver phiên bản 525.60.13 trở lên trên Windows.
- Nếu bạn sử dụng Toolkit phiên bản cao hơn mức Driver hỗ trợ, hàm
cudaSetDevicesẽ trả về mã lỗi.
Trường hợp 3: Thiết bị không hỗ trợ CUDA
Dù hiếm gặp trên các dòng máy tính mới, nhưng nếu bạn sử dụng GPU onboard (Intel/AMD) hoặc các dòng GPU NVIDIA quá cũ (kiến trúc Tesla đời đầu), phần cứng sẽ không có nhân CUDA để thực thi.