全部產品
Search
文件中心

Function Compute:影像處理最佳實務

更新時間:Jul 06, 2024

您可以通過Function Compute控制台、SDK或Serverless Devs來體驗GPU執行個體的最佳實務。本文以Python語言為例,說明如何通過控制台,將原始映像經過函數代碼處理,實現邊緣檢測。

應用情境與優勢

在不同的應用情境下,Function Compute提供的GPU執行個體與CPU相比所具備的優勢如下。

  • 即時、准即時的應用情境

    • 提供數倍於CPU的圖形影像處理效率,從而快速將生產內容推向終端使用者。

  • 成本優先的影像處理情境

    • 提供彈性預留模式,從而按需為客戶保留GPU工作執行個體,對比自建GPU叢集擁有較大成本優勢。

    • 提供GPU共用虛擬化,支援以1/2、獨佔方式使用GPU,允許業務以更精細化的方式配置GPU執行個體。

  • 效率優先的影像處理情境

    • 屏蔽營運GPU叢集的繁重負擔(驅動/CUDA版本管理、機器運行管理、GPU壞卡管理),使得開發人員專註於代碼開發、聚焦營運目標的達成。

GPU執行個體的更多資訊,請參見執行個體類型及使用模式

教程樣本說明

如下表所示,左列為原圖,右列是經過部署在Function Compute的邊緣檢測函數代碼處理後,所產生的圖片。

原始映像

邊緣檢測結果

image_processing_example

image_processing_result_example

準備工作

通過Function Compute控制台部署GPU應用

  1. 部署鏡像。

    1. 建Container Registry的企業版執行個體或個人版執行個體。

      推薦您建立企業版執行個體。具體操作步驟,請參見建立企業版執行個體

    2. 建立命名空間和鏡像倉庫。

    3. Container Registry控制台,根據介面提示完成Docker相關操作步驟。然後將上述樣本app.pyDockerfile推送至執行個體鏡像倉庫,檔案資訊,請參見通過ServerlessDevs部署GPU應用時/code目錄中的app.pyDockerfile

      db-acr-docker

  2. 建立GPU函數。具體操作步驟,請參見建立Custom Container函數

  3. 修改函數的執行逾時時間。

    1. 在目標函數的配置頁簽,在左側導覽列,選擇運行時,然後單擊運行時右側的編輯

    2. 運行時面板,修改執行逾時時間,然後單擊確定

    說明

    CPU轉碼耗時會超過預設的60s,因此建議您修改執行逾時時間為較大的值。

  4. 配置GPU預留執行個體。關於配置預留執行個體的具體操作,請參見配置預留執行個體

    配置完成後,您可以在規則列表查看預留的GPU執行個體是否就緒。即當前預留執行個體數是否為設定的預留執行個體數。

  5. 使用cURL測試函數。

    1. 在函數詳情頁面,單擊觸發器管理頁簽,查看觸發器的配置資訊,擷取觸發器的訪問地址。

    2. 在命令列執行如下命令,調用GPU函數。

      • 查看線上函數版本

        curl "https://tgpu-op-console-tgpu-op-console-ajezokddpx.cn-shenzhen.fcapp.run"
        {"function": "opencv_edge_canny"}
      • 執行圖片邊緣檢測

        curl "https://tgpu-op-console-tgpu-op-console-ajezokddpx.cn-shenzhen.fcapp.run" -H "RUN-MODE: normal"
        {"result": "CUDA-capable device supported | process image ok!"}

執行結果

您可通過在瀏覽器中訪問以下網域名稱,查看經過邊緣檢測處理後的圖片:

https://cri-zfen7xhpsx******-registry.oss-cn-shenzhen.aliyuncs.com/cats2.png

本網域名稱僅為樣本,需以實際情況為準。