Vietnamen’s Weblog

Time, Chances, Diligence, Intelligence: which is the most important?

Phần 2: Bắt đầu với CUDA-capable GPU

leave a comment »

Cài đặt

Cách cài đặt phần cứng + phần mềm, xin xem tài liệu đi kèm.

CUDA SDK sẽ mặc định cài đặt ở $(HOME)/NVIDIA_CUDA_SDK

CUDA Toolkit sẽ mặc định cài đặt ở /usr/local/cuda

Kiểm tra phần cứng

Để cập nhật thông tin về phần cứng, ta dùng lệnh

sudo update-pciids

Để biết CUDA-capable GPU nào đang được cài đặt, ta dùng lệnh

lspci | grep -i nVidia
81:00.0 3D controller: nVidia Corporation GT200 [Tesla C1060 / Tesla S1070] (rev a1)

0a:00.0 VGA compatible controller: nVidia Corporation NV45GL [Quadro FX 3400/4400] (rev a2)

81:00.0 3D controller: nVidia Corporation GT200 [Tesla C1060 / Tesla S1070] (rev a1)

Ở đây, ta thấy có 2 card đồ họa (NVIDIA Quadro), và 1 card NVIDIA Tesla.

Kiểm tra phần mềm

Để viết được ứng dụng song song dùng CUDA-capable GPU, ta cần CUDA Development tool (hiện nay là version 2.3) gồm có CUDA toolkit CUDA SDK.  CUDA toolkit chứa các header files, tools, libraries… để giúp biên dịch ứng dụng chạy trên nền CUDA-capable GPU. CUDA SDK chứa các hướng dẫn cần thiết cho việc viết các ứng dụng song song dùng công nghệ CUDA.

Về phần hệ điều hành, cả Windows lẫn Linux đều có hỗ trợ. Ở đây, người viết sử dụng Ubuntu Jaunty 9.04 (64-bit). Về phần trình biên dịch (compiler), để tương thích, gcc version 3.4.x hoặc 4.x.x. PGI Fortran compiler cũng vừa có hỗ trợ, tuy nhiên đây là phiên bản có bản quyền, và nó cần gcc 4.3.x hoặc 4.4.0. Trong các phần sau, PGI Fortran sẽ được nói tới khi dùng với CUDA.

Cuối cùng là NVIDIA driver. CUDA toolkit 2.3 yêu cầu NVIDIA driver version 190 trở đi. Để kiểm tra version của NVIDIA driver, dùng X-tool

/usr/bin/nvidia-settings

hoặc

cat /proc/driver/nvidia/version

 

hoặc dùng deviceQuery tool ở phần sau.

Thiết lập môi trường để có thể dùng CUDA

Nơi cài đặt mặc định với CUDA toolkit là ở /usr/local/cuda$(HOME)/NVIDIA_CUDA_SDK.

Vì thế, cần đảm bảo biến môi trường PATH có chứa /usr/local/cuda/bin. Biến môi trường LD_LIBRARY_PATH có chứa hoặc /usr/local/cuda/lib hoặc /usr/local/cuda/lib64, tùy vào môi trường là 32-bit hay 64-bit. Đưa các thông tin biến môi trường vào file ~/.bash_profile. Sau đó, cập nhật dùng

load ~/.bash_profile

CUDA SDK được cài đặt ở /usr/local/NVIDIA_GPU_Computing_SDK hoặc mặc định ở $(HOME)/NVDIA_GPU_Computing_SDK.


Kiểm tra cài đặt CUDA-capable GPU

Để kiểm tra, ta sẽ biên dịch gói SDK codes kèm theo NVIDIA_GPU_Computing_SDK/C/. Trong thư mục NVIDIA_GPU_Computing_SDK/C có chứa rất nhiều ví dụ viết trên ngôn ngữ C. Với những ai dùng C, có thể dùng đây làm nguồn tham khảo. Nếu biên dịch thấy lỗi, đọc phần tương thích và lỗi.

Sau khi được biên dịch, các binary files sẽ nằm ở NVIDIA_GPU_Computing_SDK/C/bin/linux/release. Sau đây là một số tiện ích có thể chạy test.

deviceQuery

deviceQuery là một trong các binary files vừa được biên dịch xong. Tiện ích này sẽ cho ta biết thông số của GPU card. CHÚ Ý: Nếu chức năng SELinux có sử dụng, ta cần disable nó trước khi chạy deviceQuery.

sudo setenforce 0

bandwidthTest

bandwidthTest là một trong các binary files vừa được biên dịch xong. Tiện ích này sẽ kiểm tra xem giao tiếp giữa CUDA-capable GPU và hệ thống có tốt hay không. Nó có nhiều tham số hữu ích, nên dùng –help để xem thêm.

 

Tương thích và lỗi

Trước khi biên dịch, cần dùng gcc 4.3. Hiện nay (Oct, 12, 2009) phiên bản gcc 4.4. có nhiều vấn đề với CUDA 2.3.

Lúc biên dịch,có thể thiếu một số header files, bạn có thể kiểm tra các packages sau:

Nếu thiếu file glut.h, cài đặt freeglut-dev. Nếu vẫn chưa được (hiếm khi xảy ra) ta có thể thử với các gói sau

libgl1-mesa-dev
mesa-common-dev
libgl1-mesa-dri-dev
libglu1-mesa-dev
libx11-dev

Nếu thiếu …., cài đặt libxi-devel, libxmu-dev.

Nếu bị lỗi


obj/release/deviceQueryDrv.cpp.o: In function `main':
deviceQueryDrv.cpp:(.text+0x134): undefined reference to `cuDriverGetVersion'
collect2: ld returned 1 exit status
make[1]: *** [../../bin/linux/release/deviceQueryDrv] Error 1
Ta kiểm tra version của NVDIA driver dùng

 

cat /proc/driver/nvidia/version

 

 

nếu là 180.xxx thì phải nâng cấp lên 190.xxx (để tương thích với CUDA 2.3) theo cách sau

  • NVIDIA driver 180.xxx (phiên bản kèm theo repos của Ubuntu 9.04) có thể làm việc với CUDA 2.2, nhưng không với CUDA 2.3
  • NVIDIA driver 190.xxx có thể làm việc với CUDA 2.3. Link download (nhớ disabled và remove các packages đã cài đặt với NVIDIA driver 18.xxx dùng synaptic).

Có thể remove 180.44 dùng

sudo NVIDIA-Linux-x86-180.44-pkg1.run –uninstall

Sau đó, xoá hoàn toàn các files có chứa từ nvidia ở trong các thư mục sau

/lib/modules/2.6…/ (there can be more than one folder)
/usr/lib64/xorg

Cuối cùng, tiến hành cài đặt mới với NVIDIA driver 190.xx (ví dụ: NVIDIA 190.18 Beta).

Tham khảo:

  1. http://developer.nvidia.com/object/opengl_3_driver.html
  2. http://www.nvidia.com/object/cuda_get.html
  3. http://www.nvidia.com/object/unix.html
  4. http://forums.opensuse.org/hardware/412100-nvidia-driver-180-44-opensuse-11-1-a.html

Written by vietnamen

Tháng Mười 4, 2009 lúc 6:29 chiều

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: