28 điểm bởi xguru 2023-09-12 | 6 bình luận | Chia sẻ qua WhatsApp
  • 4 yếu tố đã giúp Nvidia tăng hiệu năng GPU lên 1000 lần trong 10 năm
  • Bill Dally, Chief Scientist, đã giải thích bằng một slide duy nhất trong bài phát biểu chính tại IEEE Hot Chips 2023

Biểu diễn số: 16 lần

  • "Nhìn chung, lợi ích lớn nhất mà chúng tôi đạt được là từ việc cải thiện cách biểu diễn số"
  • Các con số này biểu thị những tham số chính của mạng nơ-ron
  • Một trong các tham số này là trọng số (Weights), và một tham số khác là kích hoạt (Activations)
    • Trọng số: độ mạnh của kết nối giữa các nơ-ron trong mô hình
    • Kích hoạt: lấy tổng đầu vào đã được áp trọng số tại một nơ-ron để quyết định có kích hoạt hay không, rồi truyền thông tin sang lớp tiếp theo
  • Các GPU Nvidia trước P100 biểu diễn các trọng số này bằng số dấu phẩy động đơn chính xác (single precision floating-point)
  • Được định nghĩa theo chuẩn IEEE 754, các số này có độ dài 32 bit, trong đó 23 bit biểu diễn phần trị, 8 bit đóng vai trò số mũ áp dụng cho phần trị, và 1 bit được dùng cho dấu của số
  • Tuy nhiên, các nhà nghiên cứu machine learning nhận ra rằng trong nhiều phép tính có thể dùng các con số kém chính xác hơn mà mạng nơ-ron vẫn đưa ra đáp án chính xác
  • Khi xử lý ít bit hơn như vậy, có thể làm logic thực hiện các phép tính cốt lõi của machine learning (nhân và cộng dồn) nhỏ hơn và hiệu quả hơn
    • Năng lượng cần cho phép nhân tỉ lệ với bình phương số bit
  • Vì vậy Nvidia đã dùng FP16 trên P100 để giảm một nửa con số đó. Google cũng đưa ra phiên bản riêng gọi là bfloat16
    • Khác biệt giữa hai loại nằm ở số lượng tương đối giữa bit phần trị cung cấp độ chính xác và bit số mũ cung cấp miền giá trị
    • bfloat16 có cùng số bit số mũ như FP32 nên việc chuyển đổi giữa hai định dạng dễ dàng hơn
  • GPU hiện đại nhất ngày nay là H100 có thể dùng số 8 bit để thực hiện một số phần nhất định của các mạng nơ-ron transformer quy mô lớn như ChatGPT và các LLM khác
    • Nhưng Nvidia nhận ra đây không phải là giải pháp one-size-fits-all áp dụng cho mọi trường hợp
    • Ví dụ, kiến trúc GPU Hopper của Nvidia thực tế dùng hai định dạng FP8 khác nhau để tính toán
    • Một loại có độ chính xác nhỉnh hơn một chút, loại còn lại có miền giá trị rộng hơn một chút
    • Bí quyết đặc biệt của Nvidia là biết khi nào nên dùng định dạng nào
  • Dally và nhóm của ông có đủ loại ý tưởng thú vị để khai thác nhiều AI hơn từ số bit ít hơn
  • Và rõ ràng hệ thống dấu phẩy động không phải là lý tưởng
  • Một trong những vấn đề chính là độ chính xác của dấu phẩy động khá đồng đều bất kể số lớn hay nhỏ
  • Nhưng các tham số của mạng nơ-ron không dùng số lớn mà tập trung quanh 0
  • Vì vậy trọng tâm R&D của Nvidia là tìm ra những cách hiệu quả để biểu diễn số chính xác hơn khi ở gần 0

Chỉ thị phức tạp: 12,5 lần

  • "Chi phí overhead để lấy và giải mã chỉ thị cao hơn nhiều lần so với việc thực hiện một phép toán số học đơn giản"
  • Ví dụ, có một phép nhân tiêu tốn overhead gấp 20 lần so với 1,5 picojoule mà bản thân phép toán cần dùng
  • Bằng cách thiết kế GPU để thực hiện các phép tính lớn bằng một chỉ thị đơn thay vì một chuỗi chỉ thị, Nvidia đã thu được lợi ích lớn
  • Overhead vẫn còn đó, nhưng khi dùng các chỉ thị phức tạp, có thể phân bổ chi phí đó lên nhiều phép toán hơn
  • Ví dụ, overhead của chỉ thị phức tạp IMMA (integer matrix multiply and accumulate, nhân ma trận số nguyên và cộng dồn) chỉ chiếm 16% chi phí năng lượng của phần toán học

Định luật Moore: 2,5 lần

  • Duy trì đà tiến của định luật Moore đòi hỏi các khoản đầu tư trị giá hàng tỷ USD, kỹ thuật cực kỳ phức tạp và vô số bất ổn quốc tế
  • Tuy nhiên, đây cũng là một phần trong mức tăng hiệu năng GPU của Nvidia
  • Nvidia liên tục tận dụng những công nghệ sản xuất tiên tiến nhất
  • H100 được sản xuất trên tiến trình N5 (5 nanomet) của TSMC, và hãng đúc chip này chỉ mới bắt đầu sản xuất ban đầu cho thế hệ N3 tiếp theo vào cuối năm 2022

Độ thưa: 2 lần

  • Sau khi huấn luyện, mạng nơ-ron vẫn còn lại nhiều nơ-ron vốn dĩ lẽ ra không nên tồn tại ngay từ đầu
  • Với một số mạng nơ-ron, "có thể loại bỏ hơn một nửa số nơ-ron mà không làm mất độ chính xác"
  • Giá trị trọng số của các nơ-ron này bằng 0 hoặc gần 0, nên không đóng góp vào đầu ra; đưa chúng vào tính toán chỉ lãng phí thời gian và năng lượng
  • Để giảm tải tính toán, việc làm cho các mạng này trở nên "thưa (sparse)" là một công việc phức tạp
  • Tuy nhiên, với A100, tiền nhiệm của H100, Nvidia đã giới thiệu một tính năng mà hãng gọi là structured sparsity
  • Phần cứng này có thể buộc xảy ra 2 trong 4 sự kiện cắt tỉa khả dĩ, từ đó dẫn đến các phép tính ma trận mới nhỏ hơn
  • "Vấn đề sparsity vẫn chưa kết thúc" "Chúng ta còn phải làm gì đó với activations, và cũng có thể đạt được mức sparsity lớn hơn ở weights"

6 bình luận

 
ninebow 2023-09-12

Ồ, cảm ơn vì bài viết hay!

 
nicewook 2023-09-12

Đọc rất thú vị.

 
ragingwind 2023-09-12

Wow, phải tiếp tục mua cổ phiếu thôi..

 
xguru 2023-09-12

Tôi có mua một ít cổ phiếu Nvidia từ năm 2018 để thăm dò, giờ đã tăng 1100% rồi. Lúc đó lẽ ra nên mua thật nhiều. hu hu

 
laeyoung 2023-09-12

Wow..!

 
xguru 2023-09-12

16 x 12.5 x 2.5 x 2 thì đúng là 1000 nhỉ.