Công cụ phân tích Roofline
Công cụ Phân tích đường viền mái cung cấp một mô hình hiệu suất trực quan mà bạn có thể sử dụng để hiểu các giới hạn vốn có của phần cứng ảnh hưởng đến hiệu suất của chương trình. Cụ thể, chỉ số này tập trung vào việc liệu chương trình có bị ràng buộc về bộ nhớ hay không, cũng như hiệu suất của chương trình có gần với hiệu suất đỉnh lý thuyết của phần cứng hay không, được biểu thị dưới dạng "đường viền mái nhà".
Nền tảng được hỗ trợ
TPU: Được hỗ trợ
GPU: Được hỗ trợ (ở phiên bản thử nghiệm)
Biểu đồ đường viền mái là gì
Biểu đồ đường viền mái nhà trực quan hoá mối quan hệ giữa cường độ hoạt động (FLOPS trên mỗi byte được truy cập) và FLOPS đạt được mỗi giây.
\[ Roofline = min(Operational Intensity \times Peak Memory Bandwidth, Peak FLOPS) \]
Hình dạng "mái nhà" được hình thành bởi FLOPS đỉnh thấp hơn và hiệu suất đạt được dựa trên băng thông bộ nhớ và cường độ hoạt động. Điểm đỉnh cho biết cường độ hoạt động tối thiểu cần thiết để đạt được FLOPS cao nhất.
Bạn có thể tìm hiểu thêm về mô hình đường viền mái trong bài viết Roofline: An Insightful Visual Performance Model for Floating-Point Programs and Multicore Architectures (Roofline: Mô hình hiệu suất trực quan chi tiết cho các chương trình dấu phẩy động và cấu trúc đa nhân) hoặc trong chủ đề Roofline model (Mô hình đường viền mái) trên Wikipedia.
Diễn giải biểu đồ Roofline
Bằng cách lập biểu đồ cường độ hoạt động và FLOPS đã đạt được cho các bước, phần của chương trình hoặc hoạt động HLO riêng lẻ trên biểu đồ đường viền mái, bạn có thể hiểu rõ hơn về các nút thắt cổ chai về hiệu suất:
- Nếu một điểm dữ liệu nằm trên phần nghiêng của đường viền mái, hiệu suất có thể bị giới hạn bởi băng thông bộ nhớ (giới hạn bộ nhớ). Việc tăng cường độ hoạt động (thực hiện nhiều phép tính hơn trên mỗi byte dữ liệu được truy cập) có thể cải thiện hiệu suất.
- Nếu một điểm dữ liệu nằm trên phần phẳng của đường viền mái, thì hiệu suất có thể bị giới hạn bởi khả năng tính toán (giới hạn tính toán). Trong trường hợp này, việc tăng cường cường độ hoạt động có thể không làm tăng hiệu suất đáng kể, trừ phi FLOPS đỉnh của phần cứng có thể được sử dụng hiệu quả hơn.
- Khoảng cách của một điểm dữ liệu từ đường viền mái cho biết khả năng cải thiện hiệu suất. Khoảng cách lớn hơn cho thấy có cơ hội tối ưu hoá chương trình để sử dụng hiệu quả hơn các chức năng của phần cứng.
Thành phần giao diện
Giao diện công cụ Phân tích đường viền mái có một số thành phần chính:
- Phần Thông tin thiết bị mô tả thông số kỹ thuật phần cứng; các thông số này được dùng để vẽ tĩnh "(các) đường viền mái" trên biểu đồ
- Biểu đồ đường viền mái ở cấp chương trình có các điểm dữ liệu tương ứng với những thông tin sau:
- Tổng thời lượng hồ sơ.
- Tổng thời lượng hồ sơ, nhưng với dữ liệu FLOPS/giây bắt nguồn từ bộ đếm hiệu suất phần cứng thay vì mô hình chi phí mặc định do trình biên dịch XLA tính toán.
- Trung bình của các bước hoàn chỉnh được thực thi trong thời lượng hồ sơ (đối với công việc huấn luyện; bạn có thể bỏ qua thuật ngữ bước đối với công việc suy luận).
- Mỗi bước hoàn chỉnh được thực thi trong thời lượng hồ sơ (đối với công việc huấn luyện; bạn có thể bỏ qua thuật ngữ bước đối với công việc suy luận).
- Biểu đồ đường viền mái cũng có các tính năng sau:
- Bạn có thể chọn bao gồm hoặc loại trừ các hoạt động trong nguồn cấp dữ liệu/ngoài nguồn cấp dữ liệu bằng trình đơn thả xuống được cung cấp.
- Khi di chuột qua bất kỳ điểm dữ liệu nào trong biểu đồ, bạn sẽ thấy thêm thông tin liên quan, chẳng hạn như số băng thông cho các bộ nhớ khác nhau, tổng thời gian đã dùng, v.v.
- Bảng số liệu thống kê cấp chương trình cung cấp thêm thông tin chi tiết cho từng điểm dữ liệu, chẳng hạn như tỷ lệ sử dụng bộ nhớ tối đa, tỷ lệ FLOP đỉnh, v.v.
- Biểu đồ đường viền mái thứ hai cung cấp thông tin chi tiết hơn, với các điểm dữ liệu được lập biểu đồ cho 1000 thao tác tốn nhiều thời gian nhất trong khoảng thời gian phân tích tài nguyên:
- Giống như biểu đồ đường viền mái cấp chương trình, khi di chuột qua từng điểm dữ liệu, bạn sẽ thấy thêm thông tin về toán tử đó.
- Bạn có thể tuỳ chỉnh các điểm dữ liệu hiển thị trên biểu đồ theo các cách sau:
- Bao gồm/loại trừ các hoạt động trong nguồn cấp dữ liệu và ngoài nguồn cấp dữ liệu thông qua trình đơn thả xuống.
- Lọc theo các danh mục thao tác cụ thể.
- Lọc các thao tác được liên kết với một tài nguyên nhất định.
- Lọc theo một toán tử có tên cụ thể.
- Một bảng số liệu thống kê thứ hai, tương tự như bảng cấp chương trình, cung cấp thêm thông tin chi tiết cho từng điểm dữ liệu.
Trong tất cả các phần được mô tả ở trên, các kỷ niệm sau đây được hỗ trợ:
- Đối với TPU: HBM, VMEM, CMEM (chỉ TPU phiên bản 4).
- Đối với GPU: HBM, L1/SharedMem.
- Các dòng tương ứng trong biểu đồ chỉ xuất hiện nếu có bất kỳ thao tác nào trong khoảng thời gian của hồ sơ bị ràng buộc bởi bộ nhớ đó. Ví dụ: nếu tất cả các thao tác đều là HBM hoặc bị ràng buộc tính toán, bạn sẽ không thấy các dòng cho VMEM hoặc CMEM.