Thiết lập môi trường phát triển CUDA trên MacOS X
Trong entry này, tôi sẽ trình bày cách cấu hình và thiết lập môi trường phát triển ứng dụng CUDA trên MacOS X 10.6 (Snow Leopard) và CUDA SDK 2.3.
1. Cài đặt CUDA
Đầu tiên, ta cần cài đặt các thành phần sau:
- Xcode, mục đích là để Xcode cài thêm trình biên dịch C/C++.
- CUDA driver.
- CUDA Toolkit 2.3a for Mac OS
- CUDA SDK 2.3a or Mac OS
- CUDA Visual Profiler v1.3 for Mac OS (không bắt buộc)
Sau khi download các file thích hợp, ta cài theo thứ tự driver, Toolkit và SDK. Bạn có thể đọc thêm trong Getting Started Guide của NVIDIA để biết thêm chi tiết. Thao tác cài Toolkit và SDK rất đơn giản, tuy nhiên cần phải thay đổi một số tham số cấu hình để CUDA chạy đúng trên MacOS.
Thay đổi các biến môi trường
Sau khi cài xong,ta cần đặt các biến môi trường PATH và DYLD_LIBRARY_PATH để trình biên dịch CUDA hoạt động được. Trong các bản MacOS từ Leopard trở về sau, một trong những cách để làm điều này là đặt các lệnh sau vào file ~/.bash_profile.
export PATH=/opt/local/bin:/usr/local/cuda/bin:$PATH export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH
Thay đổi các tham số
Các tham số này được đặt trong file /Developer/CUDA/common/common.mk. Ta mở file này (bằng vim hoặc TextEdit) rồi tìm và sửa các tham số sau:
# Compiler-specific flags NVCCFLAGS := -m32 CXXFLAGS := -m32 $(CXXWARN_FLAGS) CFLAGS := -m32 $(CWARN_FLAGS)
Các dòng này báo cho trình biên dịch CUDA biết là ta đang muốn compile code với thư viện 32 bit.
Thay đổi trình biên dịch C/C++
Mặc dịnh khi cài Xcode, trình biên dịch C/C++ được chọn là gcc 4.2, khi sử dụng các phiên bản mới này, một số file mã nguồn trong CUDA SDK sẽ không biên dịch được, do đó ta cần sửa lại các link về phiên bản 4.0:
cd /usr/bin sudo rm ./gcc sudo ln -s ./gcc-4.0 ./gcc sudo rm ./g++ sudo ln -s ./g++-4.0 ./g++
Cuối cùng ta có thể build các project trong SDK:
cd /Developer/CUDA make // hoặc make dbg=1 (debug), make emu=1 (emuRelease), make emu=1 dbg=1 (emuDebug)
Sau khi build xong, bạn có thể vào thư mục /Developer/CUDA/bin/darwin/release và chạy thử các chương trình mẫu trong đó.
Dưới đây là kết quả khi chạy 1 số project mẫu trong SDK.
2. Tạo project CUDA
Trong thư mục cài đặt CUDA SDK (thường là /Developer/CUDA) có sẵn 1 project mẫu mà bạn có thể sử dụng nó để tạo các project mới cho mình. Trong thư mục này có sẵn file mã nguồn *.cu (cùng với code mẫu) và file Makefile định nghĩa các quy tắc biên dịch cần thiết.
Cụ thể bạn có thể tạo project mới cho mình qua một số bước sau:
1. Copy project mẫu
cd <SDK_INSTALL_PATH>/projects // SDK_INSTALL_PATH là thư mục cài CUDA SDK cp -r template <myproject> // myproject: tên project mới
2. Sửa tên các file mã nguồn trong project
mv template.cu myproject.cu mv template_kernel.cu myproject_kernel.cu mv template_gold.cpp myproject_gold.cpp
3. Sửa trong file Makefile và mã nguồn
Find & replace “template” thành “myproject”.
4. Build
make
5. Chạy thử
../../bin/darwin/release/myproject
Như vậy bạn hoàn toàn có thể tạo các file mới, viết thêm mã nguồn (bằng Vim, TextEdit… hay là Microsoft Word, Pages…). Tuy nhiên tốt hơn là nên dùng Xcode, hoặc Netbeans hay Eclipse.
Cấu hình Xcode
Phần này sẽ trình bày cách cấu hình cho Xcode để tạo project CUDA mẫu.
<To be continued…>


