日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          "); //-->

          博客專欄

          EEPW首頁(yè) > 博客 > 三種 Badcase 精度驗(yàn)證方案詳解與 hbm_infer 部署實(shí)錄

          三種 Badcase 精度驗(yàn)證方案詳解與 hbm_infer 部署實(shí)錄

          發(fā)布人:地平線開(kāi)發(fā)者 時(shí)間:2025-10-24 來(lái)源:工程師 發(fā)布文章

          在模型結(jié)構(gòu)優(yōu)化與部署量化過(guò)程中,開(kāi)發(fā)者往往會(huì)遇到一個(gè)關(guān)鍵任務(wù):基于歷史 Badcase 數(shù)據(jù)驗(yàn)證模型精度變化,確保模型修改不會(huì)引入明顯性能退化。 這類驗(yàn)證常見(jiàn)于感知、預(yù)測(cè)、行為識(shí)別等任務(wù),尤其在客戶交付或精度回歸過(guò)程中十分關(guān)鍵。

          但實(shí)際場(chǎng)景中,Badcase 的來(lái)源和管理非常復(fù)雜:

          • 數(shù)據(jù)常常分散在客戶服務(wù)器;

          • 有些數(shù)據(jù)是動(dòng)態(tài)生成、無(wú)法導(dǎo)出;

          • 板端資源有限,難以長(zhǎng)期駐留模型或數(shù)據(jù)。

          為此,地平線工具鏈圍繞量化后的模型,提供了三種可選的精度驗(yàn)證方案,分別適配不同類型的項(xiàng)目需求。

          一、三種 Badcase 精度驗(yàn)證方案
          1.1 方案一:仿真推理(Simulate Inference)

          使用量化過(guò)程生成的與 hbm 等效的 .bc 模型,在服務(wù)端模擬 BPU 行為進(jìn)行推理,無(wú)需依賴硬件設(shè)備。

          • 優(yōu)點(diǎn)

            • 無(wú)需開(kāi)發(fā)板,部署輕量;

            • 適合多模型結(jié)構(gòu)快速迭代驗(yàn)證;

          • 缺點(diǎn)

            • 本地仿真推理因?yàn)槿鄙倭藢S冒宥擞布⑴c,速度相對(duì)較差。

          適用場(chǎng)景:早期算法開(kāi)發(fā)、模型結(jié)構(gòu)調(diào)整的初步驗(yàn)證。

          1.2 方案二:本地?cái)?shù)據(jù),遠(yuǎn)程推理(hbm_infer 協(xié)同執(zhí)行)

          基于 hbm_infer 模塊,服務(wù)端將輸入數(shù)據(jù)通過(guò) RPC 接口發(fā)送至板端,調(diào)用 HBM 模型進(jìn)行真實(shí)硬件推理,結(jié)果再返回服務(wù)端進(jìn)行分析。

          • 優(yōu)點(diǎn)

            • 數(shù)據(jù)留在服務(wù)端,可動(dòng)態(tài)調(diào)度;

            • 使用板端 硬件推理,速度較快,且度評(píng)估基于真實(shí) BPU,結(jié)果可靠;

          • 缺點(diǎn)

            • 網(wǎng)絡(luò)帶寬影響推理效率;

            • 需依賴板端資源;

          適用場(chǎng)景:Badcase 動(dòng)態(tài)生成、服務(wù)端數(shù)據(jù)不便遷移、對(duì)驗(yàn)證速度存在較大需求 、真實(shí)精度驗(yàn)證。

          1.3 方案三:板端本地驗(yàn)證(純離線推理)

          通過(guò) NFS 或本地掛載方式將全部數(shù)據(jù)傳輸?shù)桨宥?,在板端離線完成所有推理與驗(yàn)證工作。

          • 優(yōu)點(diǎn)

            • 推理速度最快,完全無(wú)網(wǎng)絡(luò)瓶頸;

            • 精度結(jié)果與部署完全一致;

          • 缺點(diǎn)

            • 需預(yù)先準(zhǔn)備所有測(cè)試數(shù)據(jù);

            • 動(dòng)態(tài)輸入或在線調(diào)試能力較弱

            • 重度需依賴板端資源;

          適用場(chǎng)景:靜態(tài) Badcase 精度評(píng)估、大規(guī)模離線驗(yàn)證、交付測(cè)試。

          二、三方案對(duì)比一覽

          image.png

          三、為什么重點(diǎn)介紹方案二?

          盡管三種方案各有應(yīng)用空間, 在目前發(fā)布的 OE 包與官方示例中,對(duì)方案一/三已有說(shuō)明與案例,而方案二雖然支持面廣、功能強(qiáng)大,卻缺少系統(tǒng)化教程,另外方案二 hbm_infer 是目前唯一能同時(shí)滿足以下需求的解決方案

          1. 數(shù)據(jù)無(wú)需遷移:Badcase 可在服務(wù)器本地組織;

          2. 推理結(jié)果真實(shí)可信:完全基于硬件板端執(zhí)行;

          3. 部署過(guò)程存在一定復(fù)雜度:但可高度自動(dòng)化,適合通用集成;

          本文將聚焦方案二的 hbm_infer 使用流程,提供完整、可運(yùn)行的代碼模板,幫助你快速構(gòu)建服務(wù)端 + 板端協(xié)同驗(yàn)證框架。

          四、 hbm_infer 使用指南(方案二)
          4.1 安裝依賴
          # 安裝核心組件
          1. hbm_infer的使用依賴算法工具發(fā)布的docker環(huán)境,因此在使用hbm_infer前需要先構(gòu)建后DOCKER環(huán)境,然后在容器中安裝hbm_infer組件
          2. 在NDA支持下獲取hbm_infer python安裝包,進(jìn)入docker環(huán)境后使用pip install 安裝后使用
          4.2 常規(guī)模式示例:開(kāi)發(fā)調(diào)試推薦
          import torch
          import time
          from hbm_infer.hbm_rpc_session import HbmRpcSession
          
          def test_hbm_infer():
              hbm_model = HbmRpcSession(
                  host="192.168.1.100",  # 板端 IP
                  local_hbm_path="./model.hbm"
              )
              hbm_model.show_input_output_info()
          
              data = {
                  "input_0_y": torch.randint(0, 256, (1, 512, 960, 1), dtype=torch.uint8),
                  "input_0_uv": torch.randint(0, 256, (1, 256, 480, 2), dtype=torch.uint8),
              }
          
              begin = time.time()
              for _ in range(10):
                  outputs = hbm_model(data)
                  print({k: v.shape for k, v in outputs.items()})
          
              print(f"Avg time: {round((time.time()-begin)*1000 / 10, 2)} ms")
              hbm_model.close_server()
          
          if __name__ == "__main__":
              test_hbm_infer()
          4.3 Flexible 模式示例:多線程/多模型推薦
          from hbm_infer.hbm_rpc_session_flexible import (
              HbmRpcSession, init_server, deinit_server, init_hbm, deinit_hbm
          )
          import torch, time
          
          def test_flexible():
              server = init_server(host="192.168.1.100")
              handle = init_hbm(hbm_rpc_server=server, local_hbm_path="./model.hbm")
          
              hbm_model = HbmRpcSession(hbm_rpc_server=server, hbm_handle=handle)
          
              data = {
                  "input_0_y": torch.randint(0, 256, (1, 512, 960, 1), dtype=torch.uint8),
                  "input_0_uv": torch.randint(0, 256, (1, 256, 480, 2), dtype=torch.uint8),
              }
          
              begin = time.time()
              for _ in range(10):
                  outputs = hbm_model(data)
                  print({k: v.shape for k, v in outputs.items()})
          
              print(f"Avg time: {round((time.time()-begin)*1000 / 10, 2)} ms")
          
              hbm_model.close_server()
              deinit_hbm(handle)
              deinit_server(server)
          
          if __name__ == "__main__":
              test_flexible()
          五、小貼士:提高推理效率的建議
          • 板端與服務(wù)端建議處于同網(wǎng)段或直連,降低傳輸延遲;

          • 對(duì)于批量推理任務(wù),可提前批量加載數(shù)據(jù)并串行發(fā)送;

          • 支持 with_profile=True 打開(kāi)性能日志分析;

          六、總結(jié)建議

          image.png


          *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉