【sherpa-onnx 問題解決思路】 libcublasLt.so.11: cannot open s

更新於 2024/08/14閱讀時間約 12 分鐘
raw-image


我們在「【語音辨識引擎sherpa-onnx GPU下篇】讓您體驗更快的語音辨識功能」建置環境的過程中預到了這樣的錯誤訊息:

RuntimeError: /onnxruntime_src/onnxruntime/core/session/provider_bridge_ort.cc:
1209 onnxruntime::Provider& onnxruntime::ProviderLibrary::
Get() [ONNXRuntimeError] : 1 : FAIL :
Failed to load library libonnxruntime_providers_cuda.so with error:
libcublasLt.so.11: cannot open shared object file: No such file or directory


原本以為架構在Docker之上進行安裝會非常的順利, 結果沒想到卻遇到了這樣的插曲…, 不過沒關係, 遇到問題我們就是解決問題, 過程中也不斷精進我們的問題解決能力, 希望透過我們的思路分享讓各位朋友也能有所啟發, 甚至您有更好的解決思路也都歡迎下方留言, 讓我們共同交流想法, 激盪出全新的解決方案。


這次的問題解決思路我們會加上AI的輔助, 我們也送給您幾個實用的工具進行使用, 讓我們排除障礙的效率更上一層樓。


前情提要

我們原先使用「nvidia/cuda:12.2.2-cudnn8-devel-ubuntu22.04」這個Docker Image來進行建置的作業, 內容大致如下:


FROM nvidia/cuda:12.2.2-cudnn8-devel-ubuntu22.04

SHELL ["/bin/bash", "-c"]

# 以下兩行很重要,否則會在 tzdata config 的時候卡住。
ENV TZ=Asia/Taipei

# 以下這一行,是為了 cmake 在運作時,能取得 cuda 相關的 share library,
ENV LD_LIBRARY_PATH /usr/lib/x86_64-linux-gnu:/usr/local/cuda-12.2/compat:/usr/local/cuda/lib64/stubs:$LD_LIBRARY_PATH

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# update to fast mirror site
RUN sed -i -E 's/archive\\.ubuntu\\.com/free\\.nchc\\.org\\.tw/g' /etc/apt/sources.list

# install normal source
RUN apt-get update && \\
apt-get install -y --no-install-recommends \\
automake \\
autoconf \\
gfortran \\
gcc \\
g++ \\
git \\
libtool \\
libssl-dev \\
zlib1g-dev \\
python3 \\
python3-dev \\
python3-pip \\
python-is-python3

WORKDIR /app

RUN pip install cmake

RUN git clone <https://github.com/k2-fsa/sherpa-onnx.git> && \\
export SHERPA_ONNX_CMAKE_ARGS="-DSHERPA_ONNX_ENABLE_GPU=ON" && \\
cd sherpa-onnx && \\
python3 setup.py install

RUN pip install numpy websockets



🔍 找尋可能原因

ChatGPT幫我們找方向

Q: 請問以下的錯誤訊息可能是什麼原因?
A: ....

Q: 幫我重點整理, 簡化一些
A:
當您看到這個錯誤訊息時,通常表示系統缺少 CUDA 相關的庫文件,特別是 libcublasLt.so.11
解決方法包括確保正確安裝 CUDA,設置好 LD_LIBRARY_PATH 環境變數,
以及檢查是否缺少其他必要的 CUDA 套件。

看起來可能是cuda版本問題, 接下來我們就精準一點搜尋一番。


Github上的Issue

第一步當然要找到最源頭, 而sherpa-onnx正好將程式碼開源在Github上, 當然也有許多討論都會在上面進行, 因此我們直觀的作法就是搜尋問題的關鍵字「libcublasLt.so.11」, 我們會發現有底下幾條Issue在討論:


Google

我們直接給它更多完整的錯誤訊息。

Failed to load library libonnxruntime_providers_cuda.so with error:
libcublasLt.so.11: cannot open shared object file: No such file or director

這邊一樣整理出幾個可能的原因:

以上這兩種方法都會耗費我們許多精神在閱讀文章跟理解, 難道就沒有更快的吸收知識技巧嗎? 不! 當然有, 只是我們還沒想到可以怎麼用而已, 相信ChatGPT在大家耳中已經非常熟悉了吧! 那我們底下就會實際使用底下的工具來進行知識的重點整理, 並且透過一些小技巧來互相比對結果, 畢竟我們不能總是相信AI, 除非它足夠準。


💪 借用外力 - NotebookLM

NotebookLMChatgpt/Gemini不同的是它可以參考外部資料來源, 可以讓回答的範圍更加限縮, 避免太過廣泛的知識導致回應錯誤。

首先我們將上面蒐集到的討論連結都喂給NotebookLM

raw-image
raw-image


當我們給予可能的討論清單之後, 接下來就可以開始問問題了

🤔 開始問, 我們把自己的問題盡量問的精確一點,這樣才容易找出我們需要的答案 :

請問我遇到以下的錯誤訊息, 可能會是什麼原因? (請給我繁體中文的回答)

Failed to load library libonnxruntime_providers_cuda.so with error: libcublasLt.so.11: cannot open shared object file: No such file or director


🎯 回答:

根據提供的資訊, 發生錯誤「Failed to load library libonnxruntime_providers_cuda.so with error: libcublasLt.so.11: cannot open shared object file: No such file or director」的原因可能是因為 libcublasLt.so.11 檔案版本不符。
錯誤分析
從錯誤訊息「libcublasLt.so.11: cannot open shared object file: No such file or director」可以看出,系統找不到 libcublasLt.so.11 這個檔案。
可能原因
這個錯誤可能是因為系統上的 CUDA 版本與 onnxruntime-gpu 所需的版本不符所導致。 onnxruntime-gpu 1.16.1 版本僅支援到 CUDA 11.8,如果系統上的 CUDA 版本高於 11.8,就會發生這個錯誤。
解決方案
要解決這個問題,可以嘗試以下幾個方法:●
確認 CUDA 版本: 使用 nvcc -V 指令確認系統上的 CUDA 版本。 如果版本高於 11.8,則需要降級 CUDA 版本至 11.8 或更低。●
安裝正確版本的 libcublasLt.so.11 檔案: 確認系統上安裝的 CUDA 版本,並找到對應版本的 libcublasLt.so.11 檔案,並將其所在目錄加入環境變數。
其他資訊
根據提供的內容, 還可以了解到以下資訊:●
在安裝或使用 sherpa-onnx 時,可能會遇到與 libonnxruntime_providers_cuda.so 檔案的路徑或相依性有關的問題。●
如果使用的是 onnxruntime 1.17.1 版本,則需要使用 cudatoolkit 11.8。●
如果使用的是 onnxruntime 1.16 版本以上,則需要 glibc 版本高於 2.17
注意事項
以上資訊僅供參考,實際情況可能有所不同。建議您參考相關軟體的官方文件或搜尋相關資訊,以獲得更準確的解答。



以人為本: 決策與重點歸納

科技始終於人性, 畢竟這些討論串都是來自於我們人類的腦中吸收判斷後進行輸出, 因此最終還是要回到我們「人」身上, AI可以幫助我們快速的定位問題, 加速整體流程, 達到人機協作的最高效率, 但我們還是要對自己負責進行決策。


綜合上面的資訊, 我們可以歸納出這個問題的可能原因與方向:

  • onnxruntime與cuda版本不相容: 找版本對應表。
  • onnxruntime升版可能性。
  • cuda降版可能性。


上面幾個問題, 我們其實可以選擇繼續問NotebookLM或者自行搜尋都可以, 這沒有標準答案, 取決於我們的習慣, 相信您有一天也會玩出屬於自己的一套邏輯, 如果有更聰明的方法歡迎下方留言告訴我, 讓我們一起學習成長。


這裡我們就附上版本對應表的連結, 歡迎自行取用: https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html


我們試著搜尋一下so檔:

find / -name libcublasLt.so*


發現到找出來的都是 libcublasLt.so.12而不是11版, 因此更加確定了我們先前所推測出的答案了。

/usr/local/cuda-12.2/targets/x86_64-linux/lib/stubs/libcublasLt.so
/usr/local/cuda-12.2/targets/x86_64-linux/lib/libcublasLt.so
/usr/local/cuda-12.2/targets/x86_64-linux/lib/libcublasLt.so.12
/usr/local/cuda-12.2/targets/x86_64-linux/lib/libcublasLt.so.12.2.5.6



✅ 最終解決方法

由於我們在sherpa-onnx的專案在2024/06/27為止僅支援到cuda 11, 因此我們的Docker image勢必先降降版才能正常運作, 待onnxruntime升級之後我們再將cuda也跟著升級才是根本解決之道, 雖然我們可以強升onnxruntime, 但很難確保是否會發生更多問題, 所以最好還是配合人家所規範的版本。


Dockerfile內容…

FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04

...



結語

人機協作已然成為目前的趨勢, 我們要學會善用AI來提高我們的效率才不會被淘汰, 因此遇到問題我們不要害怕, 試著用新方法、新工具來試圖解決吧!


更多關於sherpa-onnx語音辨識引擎的教學歡迎至「🔒 阿Han的軟體心法實戰營 - 🎧語音辨識引擎」。

avatar-img
116會員
262內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
訊息的即時傳遞已然成為現代社會的趨勢了, 影音也是如此, 即時! 即時! 即時! 已經是目前使用者體驗的必要元素了, 在這邊我們要分享的主題是如何在python程式語言的情境下使用ffmpeg來將音檔串流的轉換格式, 為什麼會有這樣的需求呢? 因為我們處理音檔時可能會需要統一輸出的格式, 當然背後也
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
咦! 怎麼啟動個docker compose up -d就出現了可疑的訊息: +] Running 2/2d orphan containers ([xxxx]) for this project. If you removed or renamed this service in your
情境描述 我們在「🔒 阿Han的軟體心法實戰營 - kafka」有關於kafka的教學文章, 那麼在開發過程中我們遇到了 👻 詭異事件, 那就是我們嘗試在做一個檔案串流時, 發現Producer明明傳送了大約16MB檔案大小的封包到kafka, 每一包約(1024 * 1024 ) bytes
更快、更短、更即時是串流傳輸必要的元素, 而我們常常在使用Python請求API時都是等待式回應, 也就是一個請求過去之後, 待對方處理完畢後再行回應, 但假設需要下載的檔案、內容非常大時, 是不是使用者只能傻傻的等待整個傳輸結束後才能顯示? 這樣的使用者體驗也實在太糟糕了, 對於使用者來說除了完全
訊息的即時傳遞已然成為現代社會的趨勢了, 影音也是如此, 即時! 即時! 即時! 已經是目前使用者體驗的必要元素了, 在這邊我們要分享的主題是如何在python程式語言的情境下使用ffmpeg來將音檔串流的轉換格式, 為什麼會有這樣的需求呢? 因為我們處理音檔時可能會需要統一輸出的格式, 當然背後也
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
咦! 怎麼啟動個docker compose up -d就出現了可疑的訊息: +] Running 2/2d orphan containers ([xxxx]) for this project. If you removed or renamed this service in your
情境描述 我們在「🔒 阿Han的軟體心法實戰營 - kafka」有關於kafka的教學文章, 那麼在開發過程中我們遇到了 👻 詭異事件, 那就是我們嘗試在做一個檔案串流時, 發現Producer明明傳送了大約16MB檔案大小的封包到kafka, 每一包約(1024 * 1024 ) bytes
更快、更短、更即時是串流傳輸必要的元素, 而我們常常在使用Python請求API時都是等待式回應, 也就是一個請求過去之後, 待對方處理完畢後再行回應, 但假設需要下載的檔案、內容非常大時, 是不是使用者只能傻傻的等待整個傳輸結束後才能顯示? 這樣的使用者體驗也實在太糟糕了, 對於使用者來說除了完全
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
Shepard Tone,有人翻譯為「薛帕德音調」,是一種聽覺上面的幻覺,而且常常被用來當作配樂使用,今天就來聊聊什麼是Shepard Tone吧! Shepard Tone 這種聲音的命名,是來自認知科學家Roger Shepard,聽起來就像是聲音持續不斷、沒有盡頭的上升,很多人會用理髮店外
Thumbnail
蘇佳民佳言佳茗: A公司從近年做的員工滿意度調查發現,主管們在面對專業領域上挑戰或問題處理的「決策能力」表現都不錯;但,在面對員工問題或反應的管理作為上,員工的調查結果的回饋看來就非如此(如主管是否能有效地溝通?是否充分了解員工的想法?是否願意接納員工不一樣的意見,鼓勵公開討論,以做為決策參考等?
Thumbnail
今年在AWS峰會上真的收穫很多,也看到企業在運用AI的策略與架構是如何來落實在業務發展上。 ​ 如果說疫情帶動企業不得不邁向數位化,今年在AI的浪潮下,AI化更是決定企業能否持續發展的關鍵。 ​ 針對今年在峰會上看到的收穫分為三面向:增長、流程、應用來展開分享: ​ ​ ​ ​
Thumbnail
解決陌生的問題, 在職場上是越來越被看重的能力和指標, 在變化迅速的世界, 許多公司也非常看重這樣的能力。 近幾年在各領域和場合學習和收集到的解決問題的方法論, 架構和學習資源, 供各領域的朋友們參考
書名是「問題解決金字塔」在研究所時參與圖書館活動「心得可參與抽獎」已忘記是否有抽到獎,但額外的閱讀是喜樂的事情。以下就來分享讀書心得囉!   閱讀完本書,本書大多以對話式的方式來作為本書撰寫模式,這是此書之特色,從書中「Why→背景、目的、優點 What→主題的內容 How→詳細、真體實例 涼子:「
Thumbnail
七月報名了小羊老師的「問題解決實戰班」,並在九月第一週開始上課。我希望可以在課堂上進行思辨訓練、企劃撰寫,也期待可以認識很多mentor和生活圈以外的新朋友。 在教材包裹中,老師送了我們兩把扇子,其中一把的雙面分別是勾與叉,可以即時透過鏡頭直觀地進行表決;另一把則分別為贊同與舉手,為自己爭取發言權,
Thumbnail
以往還在醫院的經驗,當時沒有多餘的時間可以構思自己的課程或講座內容,我也曾經以多數心理師會的內容,憂鬱,正念,自我情緒調適,常見的講題作為題目。然而,用這些題目作為講題會遇到一些缺點: 由於題目單一,所以一般能接的講座時間不會太長,如果太長就會開始往深度去講。如果應用在課程設計中...
Thumbnail
入住飯店:札格雷布喜來登酒店(Sheraton Zagreb Hotel) 入住日期:2018/09 入住房型:行政套房(Executive Suite) 此次克羅埃西亞的旅行入住的是首都札格雷布(Zagreb)的喜來登酒店 建築物的外觀其實不高,內部裝潢也是走典雅型的 此次萬豪白金入住,點數房訂
Thumbnail
整體住宿評價:⭐ ⭐ ⭐ ⭐ ⭐五顆星 — 軟硬體兼備、美食豐富,頂級享受,值得多次入住 先講好~我這就是主觀評價~評分1~5星,為的就是快速掃描方便你做決策 Hotel-5Star-Sheraton Grand Taipei Hotel台北喜來登大飯店(2002年開業/ 萬豪集團旗下以所在地的商務
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
Shepard Tone,有人翻譯為「薛帕德音調」,是一種聽覺上面的幻覺,而且常常被用來當作配樂使用,今天就來聊聊什麼是Shepard Tone吧! Shepard Tone 這種聲音的命名,是來自認知科學家Roger Shepard,聽起來就像是聲音持續不斷、沒有盡頭的上升,很多人會用理髮店外
Thumbnail
蘇佳民佳言佳茗: A公司從近年做的員工滿意度調查發現,主管們在面對專業領域上挑戰或問題處理的「決策能力」表現都不錯;但,在面對員工問題或反應的管理作為上,員工的調查結果的回饋看來就非如此(如主管是否能有效地溝通?是否充分了解員工的想法?是否願意接納員工不一樣的意見,鼓勵公開討論,以做為決策參考等?
Thumbnail
今年在AWS峰會上真的收穫很多,也看到企業在運用AI的策略與架構是如何來落實在業務發展上。 ​ 如果說疫情帶動企業不得不邁向數位化,今年在AI的浪潮下,AI化更是決定企業能否持續發展的關鍵。 ​ 針對今年在峰會上看到的收穫分為三面向:增長、流程、應用來展開分享: ​ ​ ​ ​
Thumbnail
解決陌生的問題, 在職場上是越來越被看重的能力和指標, 在變化迅速的世界, 許多公司也非常看重這樣的能力。 近幾年在各領域和場合學習和收集到的解決問題的方法論, 架構和學習資源, 供各領域的朋友們參考
書名是「問題解決金字塔」在研究所時參與圖書館活動「心得可參與抽獎」已忘記是否有抽到獎,但額外的閱讀是喜樂的事情。以下就來分享讀書心得囉!   閱讀完本書,本書大多以對話式的方式來作為本書撰寫模式,這是此書之特色,從書中「Why→背景、目的、優點 What→主題的內容 How→詳細、真體實例 涼子:「
Thumbnail
七月報名了小羊老師的「問題解決實戰班」,並在九月第一週開始上課。我希望可以在課堂上進行思辨訓練、企劃撰寫,也期待可以認識很多mentor和生活圈以外的新朋友。 在教材包裹中,老師送了我們兩把扇子,其中一把的雙面分別是勾與叉,可以即時透過鏡頭直觀地進行表決;另一把則分別為贊同與舉手,為自己爭取發言權,
Thumbnail
以往還在醫院的經驗,當時沒有多餘的時間可以構思自己的課程或講座內容,我也曾經以多數心理師會的內容,憂鬱,正念,自我情緒調適,常見的講題作為題目。然而,用這些題目作為講題會遇到一些缺點: 由於題目單一,所以一般能接的講座時間不會太長,如果太長就會開始往深度去講。如果應用在課程設計中...
Thumbnail
入住飯店:札格雷布喜來登酒店(Sheraton Zagreb Hotel) 入住日期:2018/09 入住房型:行政套房(Executive Suite) 此次克羅埃西亞的旅行入住的是首都札格雷布(Zagreb)的喜來登酒店 建築物的外觀其實不高,內部裝潢也是走典雅型的 此次萬豪白金入住,點數房訂
Thumbnail
整體住宿評價:⭐ ⭐ ⭐ ⭐ ⭐五顆星 — 軟硬體兼備、美食豐富,頂級享受,值得多次入住 先講好~我這就是主觀評價~評分1~5星,為的就是快速掃描方便你做決策 Hotel-5Star-Sheraton Grand Taipei Hotel台北喜來登大飯店(2002年開業/ 萬豪集團旗下以所在地的商務