我已經(jīng)在帶有 CUDA 10 和合適的 GPU 的 x86-64 Ubuntu 計(jì)算機(jī)上安裝了 tensorflow(不是從源代碼)。我的目標(biāo)是攔截(使用 LD_PRELOAD)任何 tensorflow 應(yīng)用程序的 CUDA 運(yùn)行時(shí) API。不幸的是,對(duì)于我的用例,我無(wú)法從源代碼為不是 x86-64 的目標(biāo)機(jī)器構(gòu)建 tensorflow。我能夠攔截我從用 C++ 編寫的動(dòng)態(tài)加載 cuda 運(yùn)行時(shí) API 的測(cè)試程序進(jìn)行的 cudaLaunchKernel 調(diào)用,并且在第一次檢查時(shí)我認(rèn)為 python 應(yīng)該類似地動(dòng)態(tài)加載相同的 cuda .so - 我很困惑,因?yàn)?LD_PRELOAD 不是適用于在啟用 cuda 的情況下運(yùn)行的正常安裝的 tensorflow 應(yīng)用程序。我希望 tensorflow 中的 cudaLaunchKernel 調(diào)用應(yīng)該被我的 LD_PRELOAD 插入庫(kù)攔截。這個(gè)對(duì)嗎?
1 回答

qq_笑_17
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊
看起來(lái) Tensorflow 編寫了 stream_executor 以避免必須使用 CUDA 的運(yùn)行時(shí) API,而是用開(kāi)源代碼包裝 CUDA 的驅(qū)動(dòng)程序 API (cuLaunchKernel) 本身。在此對(duì) Tensorflow 的拉取請(qǐng)求中引用了這 一點(diǎn),以允許插入被拒絕的 CUDA 的運(yùn)行時(shí) API。同樣,在 TF 源代碼(參見(jiàn)此處)中,我們看到正在積極使用 cu*/driver API 而不是運(yùn)行時(shí) API。
添加回答
舉報(bào)
0/150
提交
取消