10 điểm bởi GN⁺ 2025-03-24 | 1 bình luận | Chia sẻ qua WhatsApp
  • GPU mạnh hơn CPU 10~100 lần, nhưng gặp khó khăn trong việc xử lý tác vụ động và thiếu công cụ lập trình song song, nên chưa thể khai thác đầy đủ hiệu năng trong các tác vụ thông thường
  • Trước đây từng có các thiết kế máy tính song song như Connection Machine, Cell, Larrabee, nhưng đã thất bại do độ phức tạp của mô hình lập trình và các nguyên nhân tương tự
  • GPU hiện đại khó tối ưu hiệu năng vì vấn đề quản lý bộ nhớ và mô hình thực thi phức tạp, cần một cấu trúc truyền dữ liệu hiệu quả dựa trên hàng đợi
  • Các kiến trúc mới như bộ tăng tốc AIcụm lõi song song có thể vượt qua các giới hạn của GPU
  • Sự phát triển của máy tính song song vẫn còn dang dở, và cần cải thiện mô hình thực thi đơn giản, hiệu quả cùng các công cụ lập trình

Hiệu năng mạnh mẽ và giới hạn của GPU

  • GPU mạnh hơn CPU khoảng 10~100 lần (tùy loại tác vụ)
  • Hiệu năng này đang được tận dụng tốt trong dựng hình đồ họa thời gian thực và machine learning
  • Tuy nhiên, hiệu năng GPU vẫn chưa được khai thác đầy đủ trong các tác vụ thông thường

Nguyên nhân giới hạn của GPU

  • Mô hình thực thi nghèo nàn
    • GPU mạnh với dữ liệu lớn có tính dự đoán cao (ví dụ: nhân ma trận đặc), nhưng hiệu năng giảm với tác vụ động
  • Thiếu ngôn ngữ và công cụ
    • Bản thân việc lập trình cho máy tính song song đã rất khó

Độ phức tạp ngày càng tăng

  • GPU mới nhất đang tăng độ phức tạp rất nhanh
  • Các tính năng mới như mesh shaders, work graphs đã được đưa vào, nhưng một số tác vụ cơ bản vẫn chưa được hỗ trợ

Vấn đề hiệu quả bộ nhớ phức tạp của GPU

  • Tác giả đang phát triển một trình dựng đồ họa vector 2D cao cấp tên là Vello
    • CPU tải mô tả cảnh (định dạng SVG) lên → compute shader xử lý rồi tạo ảnh
  • Vấn đề: khó khăn trong quản lý bộ nhớ
    • Khó dự đoán kích thước buffer để lưu kết quả trung gian
    • Khi tràn buffer, thao tác đọc từ GPU về CPU gây suy giảm hiệu năng

Đề xuất giải pháp

  • Cải tiến để truyền kết quả thông qua queue bên trong GPU

Các thiết kế máy tính song song trong quá khứ

  • Connection Machine (1985)

    • Máy tính song song với 64k bộ xử lý được kết nối bằng mạng hypercube
    • Mỗi bộ xử lý có hiệu năng thấp nhưng có thể xử lý song song ở quy mô lớn
    • Đóng góp lớn cho nghiên cứu thuật toán song song
  • Cell (2006, PS3)

    • Máy tính song song được tích hợp trong PS3 (xuất xưởng khoảng 87,4 triệu máy)
    • 8 lõi song song có thể thực hiện tính toán độc lập
    • Nguyên nhân thất bại là độ phức tạp của mô hình lập trình
  • Larrabee (2008)

    • Được phát triển như một máy tính song song dựa trên x86
    • Lý do thất bại: mức tiêu thụ điện năngthiếu hỗ trợ phần mềm
    • Sau này dẫn đến Xeon Phi và tập lệnh AVX-512

Khối lượng công việc đang thay đổi

  • Ngay cả trong game, tỷ trọng tác vụ tính toán cũng đang tăng lên
    • Với Starfield, khoảng 50% tổng thời gian xử lý là tính toán
    • Trình dựng Nanite cũng xử lý việc raster hóa các tam giác nhỏ bằng tính toán

Hướng phát triển trong tương lai

  • 1. Mở rộng cụm lõi (sự trở lại của Cell)

    • Các CPU cao cấp hiện đại chứa hơn 100 tỷ transistor
    • Có thể tạo ra chip chứa hàng trăm đến hàng nghìn lõi RISC đơn giản, tiết kiệm điện
    • Các bộ tăng tốc AI đã áp dụng kiến trúc tương tự
  • 2. Thực thi lệnh Vulkan trên GPU

    • Hỗ trợ cho phép thực thi trực tiếp lệnh Vulkan trên GPU
    • Hiện mới chỉ được triển khai hạn chế trong một số extension của Vulkan
  • 3. Work Graph

    • Chương trình được cấu thành từ các nút (kernel) và cạnh (queue)
    • Có thể chạy song song nhưng tồn tại các hạn chế sau
      • Khó thực hiện thao tác join
      • Không đảm bảo thứ tự sắp xếp của các phần tử
      • Không hỗ trợ phần tử có kích thước biến đổi
  • 4. Tiến hóa theo hướng hợp nhất với CPU

    • Thiết kế CPU hiệu năng cao có thể được tối ưu cho xử lý song song
    • Hiệu năng tính toán song song và xử lý SIMD (single instruction, multiple data) đang được cải thiện
  • 5. Có thể phần cứng đã sẵn sàng

    • Một số GPU đã có bộ xử lý lệnh có thể chạy mã do người dùng viết
    • Nếu bộ xử lý lệnh được mở hoàn toàn, có thể sẽ cải thiện hiệu năng

Vấn đề độ phức tạp

  • Kiến trúc GPU quá phức tạp
    • Trộn lẫn giữa máy tính song song + phần cứng chuyên dụng + cấu trúc xử lý lệnh
    • Các vấn đề tương thích giữa nhiều API và driver
  • Trong khi đó, CPU tiếp tục cải thiện hiệu năng dựa trên tập lệnh đơn giản

Kết luận

  • Sự phát triển của máy tính song song vẫn chưa hoàn thiện
  • Để GPU được tối ưu cho cả các tác vụ thông thường ngoài đồ họa và AI, cần có
    • Mô hình thực thi đơn giản
    • Dễ lập trình
    • Mức tiêu thụ điện năng thấp
  • Trong các công việc như trình dựng 2D cao cấp như Vello, khi đó mới có thể tận dụng trọn vẹn hiệu năng của máy tính song song
  • Cần một kiến trúc máy tính song song mới để vượt qua các giới hạn hiệu năng của GPU

1 bình luận

 
GN⁺ 2025-03-24
Ý kiến Hacker News
  • "Tin rằng có hai yếu tố chính đang cản trở điều này"

    • Có xu hướng khoác ý kiến bằng vẻ ngoài khoa học
    • Từ kinh nghiệm làm việc với bộ xử lý Cell, cần rất nhiều vi quản lý
    • Các hệ thống hiện đại được thiết kế có tính đến bảo vệ bộ nhớ, cô lập và độ ổn định
    • Nếu cho họ viết mã trên Amiga, họ sẽ có một sự trân trọng mới
  • Mô hình lập trình vào năm 2025 là không hiệu quả

    • Phải biên dịch mã nguồn/bytecode shader ở thời gian chạy
    • Khó thao tác cấu trúc dữ liệu giữa CPU và GPU trong môi trường NUMA/discrete
    • Cần đồng bộ truy cập dữ liệu giữa CPU-GPU và giữa các tác vụ GPU
    • Phải xử lý các API rối rắm do phần cứng không được chuẩn hóa
    • Cần xử lý các tổ hợp cấu hình đa dạng
  • Kinh nghiệm làm việc tại một công ty "đưa hàng trăm CPU nhỏ lên một con chip duy nhất"

    • Mô hình lập trình quá kỳ quặc nên sẽ thất bại
    • Thế hệ tiếp theo sẽ là GPU có thêm tính năng, chứ không phải một kiến trúc mới
  • GPU mạnh hơn CPU từ 10 đến 100 lần

    • Nhiều tác vụ không cần thêm hiệu năng đến vậy
    • GUI đã phản hồi với đầu vào của người dùng trong hơn 20 năm
    • Cần đơn giản hóa việc lập trình GPU
  • Ý kiến về việc xây dựng siêu máy tính bằng M4 Mac mini

    • Đảo ngược kỹ thuật tập lệnh của Apple M3 Ultra GPU và Neural Engine
    • Có thể thực hiện hơn 50 nghìn tỷ phép toán mỗi giây
  • Các vấn đề của máy tính song song

    • Nhiều người phải chấp nhận thiết bị này cho mục đích phát triển
    • Việc chuyển mã từ CPU sang GPU là một công việc lớn
    • AMD và các công ty khác đang khám phá ý tưởng đưa GPU tiến gần CPU hơn
  • Không rõ vì sao trình dựng hình 2D cần GPU

    • Trình dựng hình 3D thì cần được hỗ trợ
    • Vulkan nằm ở cấp thấp hơn trình dựng hình
    • Có các điểm ma sát trong thiết kế trình dựng hình của Rust 3D
  • Có nhiều nhắc đến Larabee nhưng không nhắc đến Xeon Phis

    • Thiết kế CPU đang tách theo hướng tối ưu hiệu năng đơn nhân và hiệu quả điện năng
    • Nếu số lượng E-core tăng lên nhiều hơn, các thuật toán tận dụng được tính song song có thể sẽ chiến thắng
  • Những đánh đổi cho phép GPU đạt thông lượng cao

    • Có hệ thống bộ nhớ hợp nhất của Apple Silicon
    • API lập trình GPU lại buộc phải xử lý như thể bộ nhớ không được hợp nhất