Công cụ thống kê hoạt động của HLO
Bạn có thể sử dụng HLO Op Stats để xem số liệu thống kê hiệu suất của các thao tác Trình tối ưu hoá cấp cao (HLO) được thực thi trong một phiên phân tích tài nguyên. Công cụ này rất hữu ích trong việc xác định các mục tiêu tiềm năng để tối ưu hoá hiệu suất bằng cách làm nổi bật các thao tác tốn nhiều thời gian nhất trong biểu đồ HLO trong khoảng thời gian được phân tích.
Nền tảng được hỗ trợ
TPU: Được hỗ trợ
GPU: Được hỗ trợ
Đối với GPU, các toán tử HLO có mối quan hệ N:M với các hạt nhân thực sự được thực thi. Để biết số liệu thống kê ở cấp hạt nhân, hãy xem công cụ Số liệu thống kê hạt nhân GPU.
Thành phần công cụ thống kê hoạt động HLO
Công cụ HLO Op Stats có các thành phần chính sau:
- Bảng thống kê hoạt động HLO: Đây là thành phần chính, trình bày thông tin chi tiết về mọi hoạt động HLO được thực thi trong phiên phân tích tài nguyên ở định dạng bảng. Có một hàng cho mỗi toán tử HLO riêng biệt và các cột ghi lại nhiều thông tin chi tiết liên quan đến toán tử đó.
- Bộ chọn thả xuống cho phép bạn quyết định những cột mà bạn muốn trực quan hoá cho mỗi toán tử HLO.
- Bạn cũng có thể lọc các hàng theo danh mục HLO Op thông qua bộ chọn thả xuống thứ hai.
- Hộp tìm kiếm cho phép bạn lọc theo mã chương trình, toán tử HLO, văn bản toán tử HLO hoặc tên toán tử khung; bộ lọc sẽ chọn chuỗi được cung cấp xuất hiện ở bất kỳ vị trí nào trong cột tương ứng.
- Phần Biểu đồ tóm tắt: Phần này có các biểu đồ tóm tắt bảng chi tiết theo từng thao tác theo các cách sau:
- Biểu đồ hình tròn cho biết tỷ lệ thời gian mà các danh mục thao tác HLO khác nhau tiêu thụ.
- Biểu đồ hình tròn cho biết tỷ lệ thời gian mà các thao tác HLO riêng lẻ tiêu thụ (bị cắt bớt thành các thao tác N hàng đầu, còn lại được phân loại là "Khác" để cải thiện khả năng đọc).
- Biểu đồ hình tròn cho biết tỷ lệ phần trăm tổng thời gian dành cho các thao tác thuộc quá trình tái tạo; XProf nhận được thông tin này từ siêu dữ liệu của trình biên dịch liên kết với hồ sơ.
- Biểu đồ hình tròn cho thấy các danh mục thao tác HLO mà thời gian tái hiện hoá (nếu có) diễn ra.
- Thời gian biên dịch bên ngoài: Biên dịch bên ngoài là một tính năng của TensorFlow cho phép một số thao tác nhất định trong phép tính XLA chạy minh bạch trên CPU máy chủ thay vì thiết bị tăng tốc (ví dụ: tf.summary hoặc tf.print yêu cầu quyền truy cập I/O mà thiết bị không có).
- Biểu đồ lập biểu đồ GFLOPS/giây cho tất cả các thao tác HLO, được sắp xếp theo tổng thời gian tự.
- Chỉ dành cho TPU, thời gian cho mỗi HLO theo nhóm bản sao: Trình đơn thả xuống cho phép bạn chọn trong số các thao tác tập thể được thực thi trong phiên phân tích tài nguyên. Các thực thể khác nhau của toán tử tập thể đó có thể đã được thực thi giữa các nhóm bản sao khác nhau (ví dụ: AllGather); biểu đồ hình tròn cho thấy mức phân phối thời gian giữa các thực thể khác nhau này.
Thông tin chi tiết về bảng thống kê hoạt động HLO
Bạn có thể nhấp vào tiêu đề cột bất kỳ để sắp xếp bảng thống kê về hoạt động HLO. Thứ tự mặc định dựa trên tổng thời gian tự thực thi của toán tử (được gắn nhãn "hạng" trong bảng).
Bảng này bao gồm các thông tin sau đây cho mỗi thao tác HLO:
- Tên toán tử: Tên duy nhất do trình biên dịch XLA chỉ định cho toán tử HLO.
- Mã chương trình: Giá trị nhận dạng cho mô-đun HLO mà toán tử này liên kết
- Danh mục thao tác HLO: Các danh mục này chủ yếu do trình biên dịch XLA xác định; XProf cũng sử dụng phương pháp phỏng đoán để xác định và phân loại một số thao tác nhất định (ví dụ: hợp nhất tích chập).
- Văn bản thao tác HLO: Do trình biên dịch XLA cung cấp và bao gồm các thông tin chi tiết như loại và hình dạng của dữ liệu đầu vào/thông số.
- Tên thao tác khung: Thao tác ở cấp khung (ví dụ: JAX) dẫn đến việc tạo toán tử HLO này.
- Số lần xuất hiện: Tổng số lần thực thi thao tác HLO cụ thể này trong khoảng thời gian phân tích tài nguyên.
- Tổng thời gian (μs): Thời gian tích luỹ để thực thi thao tác này trên tất cả các lần xuất hiện. Nếu toán tử này có bất kỳ toán tử con nào (ví dụ: trong một phép hợp nhất), thì thời gian này bao gồm cả thời gian dành cho các toán tử con đó.
- Thời gian trung bình (μs): Thời gian trung bình cho mỗi lần thực thi toán tử HLO này, bao gồm cả thời gian thực thi các toán tử con (nếu có).
- Tổng thời gian tự thực thi (μs): Thời gian tích luỹ chỉ dành cho phần thân của thao tác HLO này, không bao gồm bất kỳ thời gian nào dành cho các thao tác con của thao tác này.
- Thời gian tự thực thi trung bình (μs): Thời gian trung bình cho mỗi lần thực thi toán tử HLO này, không bao gồm bất kỳ thời gian nào dành cho các toán tử con của toán tử đó.
- Tổng thời gian tự thực thi (%): Thời gian tự thực thi của thao tác tính theo tỷ lệ phần trăm trên tổng thời gian trên thiết bị trên tất cả thao tác.
- Tổng thời gian tự tổng hợp tích luỹ (%): Tổng thời gian tự tổng hợp tích luỹ (%) cho tất cả các thao tác xuất hiện trước đó theo thứ tự "xếp hạng".
- Tình trạng tắc nghẽn DMA (%): Tỷ lệ phần trăm tổng thời gian mà thao tác bị tắc nghẽn do các thao tác Truy cập bộ nhớ trực tiếp (DMA).
- Mức sử dụng băng thông (mức sử dụng/giây) cho FLOP, HBM và bộ nhớ TPU nội bộ nếu có (ví dụ: CMEM chỉ có trên TPU v4). Tất cả đều được tính toán bằng cách sử dụng số liệu phân tích chi phí tĩnh của trình biên dịch (mẫu số) và thời gian thực thi được lập hồ sơ (mẫu số).
- GFLOPS/giây của mô hình: Chi phí GFLOP được tính toán bằng trình biên dịch XLA và thời gian được đo bằng hồ sơ.
- GFLOPS/giây được chuẩn hoá: Chuẩn hoá FLOP do trình biên dịch tính toán trên cơ sở mỗi toán tử dựa trên độ chính xác số học và FLOP đỉnh mà thiết bị hỗ trợ cho các độ chính xác khác nhau. Ví dụ: TPU v6e hỗ trợ gấp đôi số FLOP đỉnh tại int8 so với bf16; theo mặc định, XProf chuẩn hoá thành bf16.
- BW bộ nhớ: Số byte/giây mà thao tác sử dụng, từ bất kỳ bộ nhớ nào (ví dụ: VMEM và HBM TPU trên chip). Trình biên dịch XLA cung cấp số "byte" và thời lượng được đo trong hồ sơ.
- HBM BW: Số byte/giây được tiêu thụ cụ thể từ HBM.
- Cường độ hoạt động: Được tính bằng tỷ lệ FLOPS trên mỗi byte, như được xác định cho phân tích đường viền mái.
- Giới hạn điện toán/Bộ nhớ: Dựa trên Mô hình Roofline, cột này cho biết liệu hiệu suất của toán tử có bị giới hạn chủ yếu bởi khả năng điện toán hay băng thông bộ nhớ hay không.
- Tái tạo: Cho biết liệu thao tác có phải là một phần của quá trình tái tạo hay không.
- Biên dịch bên ngoài: Cho biết liệu toán tử có chạy trên CPU máy chủ bằng cơ sở biên dịch bên ngoài của Tensorflow hay không.
- Tự động điều chỉnh: Cho biết liệu toán tử có được XLA tự động điều chỉnh hay không. Để biết thêm thông tin, hãy xem phần Tự động điều chỉnh và Tự động điều chỉnh liên tục.