0

[ Liệu bạn có biết ] Bài 6: Phân Tích GPU

Ở bài viết này, mình sẽ giúp các bạn hiểu rõ hơn về GPU mà mình đang sử dụng. Cụ thể, chúng ta sẽ đi qua các nội dung quan trọng như:

  • GPU của bạn thuộc kiến trúc nào
  • Phiên bản CUDA mà GPU hỗ trợ
  • Compute Capability là gì
  • Các precision mà GPU có thể xử lý

Việc hiểu rõ những thứ này sẽ giúp bạn:

  • Cài đặt đúng môi trường (CUDA Toolkit, cuDNN)
  • Tối ưu trong quá trình training - inference
  • Tránh dùng những tính năng mà GPU không hỗ trợ (gây lỗi hoặc chậm)

Phân Tích GPU

Trước hết chúng ta sẽ xác định Cuda toolkit và GPU của chúng ta bằng lệnh nvidia-smi

image.png

Như ở đây thì máy mình phù hợp với Cuda phiên bản 13.1 và thuộc dòng GeForce MX570, từ thông tin Cuda này chúng ta biết để tải Cuda toolkit - CuDNN ( 2 cái này mình đã hướng dẫn ở các bài trước rồi nên ở đây mình chỉ nói về GPU )

Tiếp theo chúng ta sẽ vô Cuda wiki để hiểu rõ hơn về GPU của chúng ta.

image.png

Đầu tiên các bạn cứ tìm dòng GPU của bạn, như ở đây của mình là Thuộc Ampere với Compute capability là 8.6

image.png

Máy mình là Ampere nên Cuda phù hợp có thể tải từ version 11.0 trở đi ( hoặc các bạn chỉ cần gõ lệnh nvidia-smi như trên để xác định cho lẹ )

image.png

Từ đây, các bạn có thể xác định được những loại precision mà GPU của mình hỗ trợ. Hãy đặc biệt lưu ý các precision không được hỗ trợ, vì nếu vẫn cố sử dụng, code có thể chạy chậm hơn đáng kể hoặc thậm chí gây lỗi trong quá trình thực thi.

Phần lớn các dòng GPU hiện đại mới hỗ trợ các presision siêu bé như FP4 --> FP8, INT4 --> INT8 || Và các precision này thường hay được dùng trong kĩ thuật Quantization mà mình sẽ đề cập sau này.

Qua bài viết này, bạn đã nắm được cách xác định GPU, kiến trúc, CUDA và các precision mà máy hỗ trợ. Đây là bước quan trọng giúp bạn cài đặt đúng môi trường, tối ưu hiệu năng và tránh lỗi khi sử dụng những tính năng không được hỗ trợ.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí