Người xem mức sử dụng

This tool is currently only available in nightly builds.

Mục tiêu

Mục tiêu của công cụ này là cung cấp thông tin tổng quan về hiệu suất của một hệ thống TPU và cho phép nhà phân tích hiệu suất phát hiện các phần của hệ thống có thể gặp vấn đề về hiệu suất.

Trực quan hoá mức sử dụng ở cấp chip

Để sử dụng công cụ này, trong "Drawer" (Ngăn) ở bên trái, hãy tìm công cụ "Utilization Viewer" (Trình xem mức sử dụng). Công cụ này hiển thị 4 biểu đồ thanh cho biết mức sử dụng các đơn vị thực thi (2 biểu đồ trên cùng) và đường dẫn DMA (2 biểu đồ dưới cùng) cho 2 Nút Tensor trong một chip TPU.

Tình hình sử dụng đơn vị

  • Khi di chuột lên một thanh, bạn sẽ thấy chú giải công cụ có thông tin chi tiết về mức sử dụng: số lượng "đạt được" và số lượng "đỉnh" (theo lý thuyết). Tỷ lệ phần trăm sử dụng xuất hiện trong thanh được tính bằng cách chia số tiền "đạt được" cho số tiền "cao nhất". Số lượng đạt được và số lượng cao nhất được biểu thị bằng đơn vị lệnh cho mức sử dụng đơn vị thực thi và byte cho mức sử dụng băng thông.

  • Mức sử dụng của một đơn vị thực thi là phần số chu kỳ mà đơn vị đó bận trong khoảng thời gian lập hồ sơ.

    Mức sử dụng của các đơn vị thực thi lõi tensor sau đây:

    • Đơn vị vô hướng: Được tính bằng tổng của count_s0_instructioncount_s1_instruction, tức là số lượng chỉ dẫn vô hướng, chia cho số lượng chu kỳ gấp đôi, vì thông lượng của đơn vị vô hướng là 2 chỉ dẫn trên mỗi chu kỳ.
    • Vector ALU: Được tính bằng tổng của count_v0_instructioncount_v1_instruction, tức là số lượng chỉ dẫn vectơ, chia cho số chu kỳ gấp đôi, vì thông lượng ALU vectơ là 2 chỉ dẫn trên mỗi chu kỳ.
    • Vector Stores (Lưu trữ vectơ): Được tính là count_vector_store, tức là số lượng kho lưu trữ vectơ chia cho số lượng chu kỳ, vì thông lượng kho lưu trữ vectơ là 1 chỉ thị cho mỗi chu kỳ.
    • Tải vectơ: Được tính là count_vector_load, tức là số lượt tải vectơ chia cho số chu kỳ, vì lưu lượng tải vectơ là 1 lệnh trên mỗi chu kỳ.
    • Đơn vị ma trận (MXU): Được tính bằng count_matmul chia cho 1/8 số chu kỳ, vì thông lượng MXU là 1 chỉ thị trên 8 chu kỳ.
    • Đơn vị chuyển vị (XU): Được tính là count_transpose chia cho 1/8 số chu kỳ, vì thông lượng XU là 1 chỉ thị trên 8 chu kỳ.
    • Đơn vị giảm và hoán vị (RPU): Được tính bằng count_rpu_instruction chia cho 1/8 số chu kỳ, vì thông lượng RPU là 1 lệnh trên 8 chu kỳ.

    Hình sau đây là sơ đồ khối của lõi tensor cho thấy các đơn vị thực thi:

    flowchart LR
    classDef redBox fill:#c96665,stroke:#000,stroke-width:2px,color:#000,font-weight:bold;
    classDef whiteBox fill:#fff,stroke:#000,stroke-width:2px,color:#000,font-weight:bold;
    classDef invisible fill:none,stroke:none;
    
    classDef container fill:#f9f9f9,stroke:#666,stroke-width:3px,stroke-dasharray: 10 5,color:#666,font-size:20px;
    
    subgraph TensorCore [TensorCore]
        direction LR
    
        subgraph LeftCol [ ]
            direction TB
            CS["Core<br>Sequencer<br>(CS)"]:::redBox
            VPU["Vector<br>Programmable<br>Unit<br>(VPU)"]:::whiteBox
    
            CS --> VPU
        end
    
        subgraph RightCol [ ]
            direction TB
            MXU["Matrix Unit<br>(MXU)"]:::whiteBox
            XU["Transpose Unit<br>(XU)"]:::whiteBox
            RPU["Reduction and<br>Permutation<br>Unit<br>(RPU)"]:::whiteBox
        end
    
        VPU <==> MXU
        VPU <==> XU
        VPU <==> RPU
    end
    
    class TensorCore container
    class LeftCol,RightCol invisible
    

    Để biết thêm thông tin chi tiết về từng đơn vị thực thi này, vui lòng tham khảo cấu trúc TPU.

  • Mức sử dụng đường dẫn DMA là phần băng thông (byte/chu kỳ) được sử dụng trong khoảng thời gian lập hồ sơ. Chỉ số này được lấy từ các bộ đếm NF_CTRL.

    Hình sau đây cho thấy 7 nút đại diện cho các nguồn / đích đến của DMA và 14 đường dẫn DMA trong một Nút Tensor. Các đường dẫn "BMem to VMem" và "Bmem to ICI" trong hình thực ra là một đường dẫn dùng chung được tích luỹ bằng một bộ đếm duy nhất, xuất hiện dưới dạng "BMem to ICI/VMem" trong công cụ. DMA được gửi đến ICI là DMA đến HBM hoặc VMEM từ xa, trong khi DMA từ/đến HIB là DMA từ/đến bộ nhớ máy chủ.

    flowchart TD
      HIB[HIB]
      HBM[HBM]
      IMem[IMem]
      SMem[SMem]
      BMem[BMem]
      VMem[VMem]
      ICI[ICI]
    
      HIB --> HBM
      HBM --> HIB
    
      subgraph Memory_Units [ ]
          direction LR
          style Memory_Units fill:none,stroke:none
          IMem
          SMem
          BMem
          VMem
      end
    
      HBM --> IMem
      HBM --> SMem
      HBM --> BMem
      HBM --> VMem
    
      BMem --> VMem
      BMem --> ICI
      VMem --> ICI
      ICI --> VMem
    
      ICI --> HBM
      VMem --> HBM
      BMem --> HBM
      SMem --> HBM
    
      HBM --> ICI