- vừa được xem lúc

[NVIDIA Tools] Bài 3: Cuda toolkit - Cuda driver

0 0 13

Người đăng: NgoHuuGiaHuy

Theo Viblo Asia

Trước khi sử dụng các công cụ của Nvidia trong việc profile thì chúng ta phải có kiến thức về nguyên lí hoạt động của cuda nên ở bài mình sẽ đề cập tới 2 khái niệm thường được nhắc đến khi nói về cuda là cuda toolkit - cuda driver

Mình sẽ giải thích 1 cách đơn giản và không đi quá sâu vào chi tiết nên đừng lo lắng nha

cuda toolkit - cuda driver

toolkit_driver_nvidia.png

Trước khi giải thích 2 thuật ngữ này thì mình sẽ lấy 1 ví dụ cho các bạn dễ hiểu: giả sử trong 1 trò chơi, nhân vật của bạn lv10 và đang trang bị 1 vũ khí lv5 thì lực chiến tổng của bạn sẽ là 100, chúng ta sẽ có 2 cách để tăng lực chiến cho nhân vật của bạn:

  • Dễ: Kiếm 1 vũ khí lv10 (phù hợp với lv của bạn)
  • Khó: tăng lv nhân vật

1 lưu ý nhỏ: chúng ta không thể trang bị vũ khí có lv cao hơn lv của nhân vật

Ở đây cuda cũng giống như vậy, nếu chúng ta muốn tối ưu 1 chương trình cuda ( ngoại trừ các yếu tố liên quan đến code ) thì chúng ta có 2 cách: tăng lv cuda toolkit hoặc tăng lv cuda driver

  • cuda driver: là khả năng của máy tính các bạn (giống như lv của nhân vật ) máy tính càng mạnh thì chạy càng lẹ và mỗi máy tính sẽ có 1 mức lv nhất định

image.png

  • cuda toolkit: là phiên bản cuda của chúng ta ( giống như lv của vũ khí ) phiên bản càng cao thì CÓ THỂ CHẠY NHANH HƠN phiên bản cũ ( vì phiên bản mới đương nhiên sẽ được tối ưu hơn và có nhiều function xịn hơn phiên bản cũ )

Tóm lại cuda driver là physical, là khả năng tối đa mà chương trình cuda có thể chạy, còn cuda toolkit là logical, là mức độ sử dụng cuda, phiên bản càng cao thì mức độ sử dụng càng xịn

toolkit-driver.png

Khi code chúng ta có 2 góc nhìn: coder view ( logical view ) và hardware view (physical view ), tức là khi chúng ta code, việc chúng ta tối ưu code thì sẽ là tối ưu ở mức độ logical và đoạn code đó sẽ được đưa về mã nhị phân để phần cứng chạy và tối ưu. Ở đây cuda toolkit/driver cũng giống vậy, chúng ta dùng cuda toolkit để tối ưu cuda code và cuda driver sẽ tối ưu phần hardware cho chúng ta

Câu hỏi đặt ra là làm sao để chúng ta xác định được cuda driver/toolkit để dùng?

Rất đơn giản, chúng ta sẽ dùng NVIDIA driver để xác định máy tính chúng ta dùng driver tới mức nào.

Đây là ví dụ về máy tính của mình

image.png

image.png

Ở đây bạn sẽ thấy driver phù hợp với mình là phiên bản 535 từ đó mình sẽ tới driver 535 và sau khi tải xong mở terminal lên và gõ lệnh này để xem cuda toolkit phù hợp

$nvidia-smi

image.png

Bình luận

Bài viết tương tự

- vừa được xem lúc

GPU programming với Golang

GPU programming với Golang. Ở bài trước mình có giới thiệu về kĩ thuật lập trình GPU với OpenCL bằng C/C++.

0 0 27

- vừa được xem lúc

Allocating Memory on HPC ( Slurm Scripts)

Bài viết này giải thích cách yêu cầu bộ nhớ trong các Slurm Scripts và cách xử lý các lỗi thường gặp liên quan đến bộ nhớ CPU và GPU. Lưu ý rằng "memory" luôn đề cập đến RAM .

0 0 27

- vừa được xem lúc

[Lập trình song song] Bài 1: Giới thiệu về CPU-GPU

Trước khi tìm hiểu thế nào là lập trình song song cũng như cách code thì mình phải biết 1 chút về lịch sử hình thành nên ở bài 1 mình sẽ giới thiệu sơ lược những điều bạn nên biết ở lĩnh vực này. Chắc

0 0 28

- vừa được xem lúc

[Lập trình song song] Bài 2: Cài đặt môi trường code CudaC

Trước khi code thì chúng ta phải setup môi trường để code thì ở bài này mình sẽ hướng dẫn các bạn cách setup và đối với những ai sở hữu máy tính mà không có GPU thì cũng đừng có lo vì chúng ta sẽ code

0 0 18

- vừa được xem lúc

[Lập trình song song] Bài bonus 1: Cách thức hoạt động của máy tính

Ở bài này mình sẽ nói qua về cách máy tính hoạt động trong việc lấy và xử lí data qua ví dụ cực kì trực quan và dễ hiểu . Và xin lưu ý là ví dụ này sẽ được nhắc lại khá nhiều trong các bài học về lập

0 0 19

- vừa được xem lúc

[Lập trình song song] Bài bonus 2: Các thuật ngữ trong lập trình song song

Ở bài này mình sẽ giải thích các thuật ngữ thường hay được đề cập tới trong lập trình song song. .

0 0 23