1. 使用 ONNX-MLIR 優化 ONNX 模型並在 C++ 中進行推論

    前言 隨著人工智慧和機器學習應用的快速發展,越來越多的框架和工具支持將訓練好的模型進行優化並部署在不同的硬體環境中。ONNX-MLIR 是其中一個專門用於 ONNX 模型的優化和編譯工具,它可以將 ONNX 格式的機器學習模型轉換為高度優化的可執行文件(如 .so 或 .dll 動態庫)。這樣的轉換使得模型可以在目標硬體上以較高的效率運行,並且利用 LLVM 和 MLIR 的優化功能,進一步減少了運行時的延遲和計算資源的消耗。

    2024/11/16 AI

  2. ONNX-MLIR 與 TVM:機器學習編譯器的比較與分析

    前言 在AI模型的部署中,如何高效地編譯與優化模型以便在不同硬體上進行推理是近年來熱門的話題。尤其是如何將神經網路模型利用 GPU、NPU、TPU 等加速器高效運算。其中 ONNX-MLIR 和 TVM 是兩個在此領域備受矚目的工具,儘管它們有一些相似之處,但在設計目標、應用場景和優化能力上也存在顯著差異。本篇文章將深入比較 ONNX-MLIR 和 TVM,幫助讀者更好地理解它們的特性及應用場景。

    2024/11/15 AI

  3. 使用 ONNX MLIR 優化深度學習模型的運作效率

    前言 隨著深度學習模型的應用日益普及,如何有效地在資源受限的設備上運行這些模型成為了一個重要的課題。ONNX(Open Neural Network Exchange)作為一種開源的神經網絡模型交換格式,逐漸被廣泛採用,其標準化的格式使得各類深度學習框架能夠互相兼容與共享。然而,儘管 ONNX Runtime 提供了一個相對簡便的方法來部署 ONNX 模型,其體積和運行時依賴性可能對某些運算資源有限的硬體系統造成挑戰。

    2024/11/14 AI

  4. 使用 C++ 和 Node.js 在樹莓派上透過共享記憶體實現跨進程通訊

    前言 本文將詳細介紹如何在樹莓派上使用 C++ 實現共享記憶體的讀寫,並透過 Node.js 從共享記憶體中讀取數據,實現跨語言、跨進程的數據交互。我們將利用 POSIX 共享記憶體(shm_open 和 mmap)來實現進程間通訊,並使用 Node.js 的 ffi-napi 和 ref-napi 模組呼叫 C 標準庫函數,從共享記憶體中讀取數據。

    2024/11/01 C++

  5. 使用 GitLab CI/CD 自動編譯、測試及發布 C++ 專案的完整流程

    前言 在軟體開發流程中,利用 GitLab CI/CD 的自動化 Pipeline,可以大幅提高編譯與發布的效率。本篇文章將介紹如何針對 C++ 專案設置 .gitlab-ci.yml 文件,以實現多平台自動化編譯與發布。我們將展示五種情境,包含:

    2024/10/31 DevOps

  6. Jenkins 串接 GitLab

    前言 當進行 CI/CD 流程自動化時,許多人會選擇使用 Jenkins 來執行測試任務,而 GitLab 則作為程式碼版本控制系統及 CI/CD Pipeline 平台。本文將詳細介紹如何設置一個流程,使得 GitLab 的 Push 事件觸發 Jenkins 執行單元測試,並在測試成功後,由 Jenkins 進一步觸發 GitLab 的 Pipeline。

    2024/09/15 DevOps

  7. 初探GitLab CI/CD

    前言 在軟體開發過程中,經常需要不斷進行測試和程式更新。然而,面對需求變更甚至新功能的開發,如何讓工程師能夠更專注於「coding」,並節省測試和人工部署的時間呢?因此,近年來軟體業界提出了「CI / CD」的概念,透過自動化的方式來減少開發過程中的成本,降低人工操作的負擔。本篇文章將介紹如何使用「GitLab-CI」作為自動化工具,並撰寫 GitLab-CI 腳本,在每次 Push Commit 時觸發 CI 事件,實現網頁服務的自動建置與部署。

    2024/09/14 DevOps

  8. Linux 使用 Wine 執行 MinGW 編譯的 C++ .exe 檔案

    前言 當你在 Windows 上開發應用程式並使用 MinGW 編譯 C++ 程式碼時,會生成一個 .exe 檔案。這些 .exe 檔案原本是為 Windows 系統設計的,無法直接在 Linux 系統上執行。不過,透過一些工具,我們可以在 Linux 上模擬或虛擬化 Windows 環境來執行這些檔案。這篇教學將介紹如何使用 Wine 和其他選項在 Linux 上執行 MinGW 編譯的 .exe 檔案。

    2024/08/31 C++