3

Nút thắt hiệu suất của vòng lặp CPU tuần tự truyền thống

AI999第4课:现代计算底座与张量化并行演化
00:00

Quá trình tiến hóa phụ thuộc vào tính đa dạng của quần thể, mà tính đa dạng lại đồng nghĩa với việc quy mô quần thể và số lần đánh giá tăng gấp bội. Khi số lần đánh giá ứng viên lên tới hàng chục nghìn lần,vòng lặp CPU tuần tự truyền thốngliền trở thành đoạn hẹp nhất trên toàn bộ dây chuyền: mỗi lần nó chỉ xử lý một cá thể, khiến năng lực song song của phần cứng gần như bị bỏ không.

Vòng lặp CPU tuần tự và song song theo lô: tổng thời gian tăng theo số lần đánh giá ứng viênXử lý tuần tự từng cá thểXử lý song song theo lôThời gian thực (chuẩn hóa)≈ 100 giâyTuần tự: tăng gần như tuyến tínhSong song: tăng theo bậc thangTuần tự từng cá thể: lấy cá thể → giải mã → đánh giá → ghi lạiCác vòng lặp liền kề không thể chồng lấn, đơn vị song song phần lớn thời gian bỏ khôngSong song theo lô: tổ chức theo lô, thời gian do số lô quyết định10³ lần10⁴ lần10⁵ lầnSố lần đánh giá ứng viênLưu ý: đoạn màu đậm là chi phí điều phối và truyền dữ liệu; với cùng khối lượng công việc, thời gian song song tăng chủ yếu do số lô chứ không phải số cá thể quyết định.

Mỗi lần một cá thể: mô hình thực thi của vòng lặp tuần tự

Cách hiện thực đơn giản nhất là coi toàn bộ quần thể như một danh sách, dùng vòng lặp lấy ra từng cá thể: lấy cá thể → giải mã thành tham số cụ thể → gọi hàm đánh giá → ghi độ thích nghi trở lại. Các vòng lặp liền kề gần như không thể chồng lấn: kết quả đánh giá chưa về thì việc ghi lại không thể tiến hành; ghi lại chưa xong thì cá thể tiếp theo không có chỗ để đặt kết quả. Vì thế các đơn vị song song như đa nhân, SIMD, GPU phần lớn thời gian ở trạng thái bỏ không, chỉ biết nhìn một cá thể chạy hết trên dây chuyền.

Chi phí thực sự đến từ đâu

  • Số lần đánh giá tăng tuyến tính: tổng số lần đánh giá xấp xỉ bằng quy mô quần thể × số thế hệ lặp, khi đạt mức 10⁵ thì thời gian thực của tuần tự tăng gần như tuyến tính.
  • Thực thi từng cá thể ở tầng trình thông dịch: vòng lặp từng cá thể, kiểm tra biên và phân phối kiểu dữ liệu mang lại chi phí hằng số cố định nhưng cao.
  • Truy cập bộ nhớ không liên tục và truyền dữ liệu: các cá thể được lấy ra từng cái thường không liên tục trong bộ nhớ, tỉ lệ trúng bộ đệm thấp, chi phí truyền dữ liệu bị trả giá lặp đi lặp lại.
  • Đồng bộ và điều phối: để lấy được cá thể tiếp theo, luồng thực thi buộc phải tạm dừng rồi khôi phục liên tục.

Quy đổi quy mô thành thời gian

Lấy ví dụ quần thể 1000, lặp 100 thế hệ, tổng cộng khoảng 100 nghìn lần đánh giá ứng viên. Nếu mỗi lần đánh giá trung bình 1 ms, chỉ riêng khâu đánh giá khi chạy tuần tự đã cần khoảng 100 giây, chưa tính chi phí tính toán toán tử và điều phối; nếu để duy trì tính đa dạng mà tăng số lần khởi động lại từ 1 lên 5 lần, chi phí tăng gần như tuyến tính lên khoảng 500 giây. Với cùng khối lượng công việc đó, nếu tổ chức theo lô và giao cho phần cứng song song xử lý, thời gian thực chủ yếu do số lô chứ không phải số cá thể quyết định.

Khi nào nút thắt này sẽ thu hẹp lại

Các điều kiện biên cũng quan trọng không kém: khi mỗi lần đánh giá cực rẻ (cấp độ micro giây) hoặc quần thể cực nhỏ (dưới mức hàng trăm), chi phí điều phối và bộ nhớ có thể vượt qua chi phí tính toán, khoảng cách giữa tuần tự và song song thu hẹp rõ rệt, lợi ích cận biên của việc tensor hóa giảm dần, nút thắt sẽ chuyển sang độ chi tiết điều phối và băng thông bộ nhớ. Vì vậy việc có đáng cải tạo mô hình thực thi hay không cần được đánh giá kết hợp giữa chi phí đánh giá và quy mô.

Nút thắt mang tính cấu trúc, không phải lỗi mã nguồn
Nút thắt hiệu suất của vòng lặp CPU tuần tự thuộc tầng mô hình thực thi: việc tinh chỉnh mã nguồn ở từng điểm riêng lẻ không thể loại bỏ nó. Muốn giải quyết triệt để, cần tái cấu trúc từ "từng cá thể" sang "từng lô" — xử lý theo lô, tensor hóa và điều phối song song, đây cũng chính là động lực trực tiếp cho thiết kế đồ thị tính toán tensor hóa về sau.