Ubuntu22.04/24.04 P104-100 安裝驅動和 CUDA Toolkit

硬件環境

使用一塊技嘉 B85m-DS3H 安裝 P104-100, CPU是帶集成顯卡的i5-4690. 先在BIOS中設置好顯示設備優先使用集成顯卡(IGX). 然后安裝P104-100開機. 登入Ubuntu 后查看硬件信息, 檢查P104-100是否已經被檢測到

# PCI設備
lspci -v | grep -i nvidia
lspci | grep NVIDIA
# 查看顯示設備
sudo lshw -C display

安裝驅動

安裝前刪除原有的 nvidia 驅動

sudo apt purge 'nvidia-*'
sudo apt autoremove --purge
sudo apt clean

驅動有兩種安裝方式

使用 ubuntu 倉庫的 nvidia 驅動(nvidia開頭)

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

列出驅動的各個版本

ubuntu-drivers devices

選擇需要的版本安裝, 例如 對應CUDA12.4是nvidia-driver-550

sudo apt install nvidia-driver-XXX

使用 nvidia 的驅動倉庫(cuda開頭)

Doc: https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html

先下載對應Ubuntu版本的 cuda-keyring

  • Ubuntu22.04 https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
  • Ubuntu24.04 https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb

用dpkg安裝, 然后apt update一下

sudo dpkg -i cuda-keyring_1.1-1_all.deb 
sudo apt update

這時候可以查詢到能安裝的版本

apt-cache search cuda-drivers-*

挑選自己需要的版本安裝, 例如 cuda-drivers-550對應CUDA12.4, cuda-drivers-570對應CUDA12.8, 如果直接安裝 cuda-drivers, 會默認安裝當前穩定版的最高版本

sudo apt install cuda-drivers-550

檢查驅動安裝結果

驅動安裝完成后重啟, 此時應該就可以直接運行 nvidia-smi 查看顯卡信息了.

在桌面環境下, 可以直接查看圖形界面 Nvidia X Server Settings

# 查看 NVIDIA 內核模塊是否加載
lsmod | grep nvidia
# 查看dmesg日志
dmesg | grep -i nvidia

另外可以安裝兩個有用的小工具 nvtop 和 vulkaninfo

nvtop

nvtop 可以在命令行下以圖形化的方式顯示顯卡當前的運行狀態, 比nvidia-smi -l命令更直觀好用

# install
sudo apt install nvtop
# usage
nvtop

vulkaninfo

vulkaninfo 可以列出當前系統的GPU信息

# install
sudo apt install vulkan-tools
# show GPU info
vulkaninfo --summary

使用prime-select切換集成顯卡和Nvidia顯卡

安裝P104-100后, 系統中可以看到同時存在集成顯卡 Intel? HD Graphics 4600 和 NVIDIA P104-100, 可以通過 prime-select 切換使用的顯卡

# 查詢, 默認為  on-demand
prime-select query
# 設置為 P104-100
prime-select nvidia
# 設置為集成顯卡
prime-select intel

Ubuntu 對于 hybrid graphics 的支持很不錯, 安裝完驅動后, 程序已經可以自動選擇用哪塊顯卡, 例如運行 minetest, 就會自動選擇 P104-100.

性能測試

在Ubuntu下可以通過 Blender 的 Blender Benchmark 檢測顯卡性能, 網站: https://opendata.blender.org/, 進行測試前會提示要下載800多M的文件.

P104-100的運行結果分數為 58x~59x 之間, 在首頁上有CPU和GPU的排行數據, 可以看到 P104-100的性能和 GTX1080, GTX1070Ti 差不多. 作為對比, i5 4690 集成顯卡的測試結果分數只有 51.91, 與 P104-100 相比差距明顯.

安裝 CUDA Toolkit

使用apt安裝

在Ubuntu下可以直接用apt安裝CUDA toolkit, 但是這樣安裝后toolkit的路徑是分散的, 不在 /usr/local/cuda 下, 有時候會造成困惑, 建議用 Nvida 提供的安裝包進行安裝

使用Nvidia提供的安裝包

從歷史版本列表 https://developer.nvidia.com/cuda-toolkit-archive 選擇安裝對應當前硬件驅動的 CUDA Toolkit. 對應上面安裝的 CUDA 版本為12.4, 因此下載 Cuda Toolkit 12.4. 頁面會提供三種安裝方式 deb(local), deb(network), runfile(local), 新手用戶建議使用前兩種, 因為runfile 涉及現場編譯, 大概率中間過程會報錯. deb(local)和deb(network)的區別就是有一個差不多4G大小的文件, 是先下載到本地了再 apt install, 還是先 apt install完在安裝過程中從網絡下載. 如果網絡不是特別好, 網速不是特別快的, 建議使用 deb(local).

這個是界面上提示的安裝命令

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
dpkg -i cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
cp /var/cuda-repo-ubuntu2204-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
apt update
apt install cuda-toolkit-12-4

CUDA的默認安裝位置是 /usr/loca/cuda, 安裝完成后檢查安裝結果

/usr/local/cuda/bin/nvcc -V

通過這種方式安裝的CUDA toolkit 是不會設置用戶環境變量的, 需要手動在 .bashrc 里添加一下

export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64
export PATH=$PATH:$CUDA_HOME/bin

運行 TorchBench

項目地址: https://github.com/pytorch/benchmark

CUDA Device Query

[CUDA Bandwidth Test] - Starting...
Running on...Device 0: NVIDIA P104-100Quick ModeHost to Device Bandwidth, 1 Device(s)PINNED Memory TransfersTransfer Size (Bytes)	Bandwidth(GB/s)32000000			0.4Device to Host Bandwidth, 1 Device(s)PINNED Memory TransfersTransfer Size (Bytes)	Bandwidth(GB/s)32000000			0.4Device to Device Bandwidth, 1 Device(s)PINNED Memory TransfersTransfer Size (Bytes)	Bandwidth(GB/s)32000000			284.0Result = PASS

CUDA Device Query

 CUDA Device Query (Runtime API) version (CUDART static linking)Detected 1 CUDA Capable device(s)Device 0: "NVIDIA P104-100"CUDA Driver Version / Runtime Version          12.4 / 12.0CUDA Capability Major/Minor version number:    6.1Total amount of global memory:                 8109 MBytes (8503230464 bytes)(015) Multiprocessors, (128) CUDA Cores/MP:    1920 CUDA CoresGPU Max Clock rate:                            1734 MHz (1.73 GHz)Memory Clock rate:                             5005 MhzMemory Bus Width:                              256-bitL2 Cache Size:                                 2097152 bytesMaximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layersMaximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layersTotal amount of constant memory:               65536 bytesTotal amount of shared memory per block:       49152 bytesTotal shared memory per multiprocessor:        98304 bytesTotal number of registers available per block: 65536Warp size:                                     32Maximum number of threads per multiprocessor:  2048Maximum number of threads per block:           1024Max dimension size of a thread block (x,y,z): (1024, 1024, 64)Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)Maximum memory pitch:                          2147483647 bytesTexture alignment:                             512 bytesConcurrent copy and kernel execution:          Yes with 2 copy engine(s)Run time limit on kernels:                     YesIntegrated GPU sharing Host Memory:            NoSupport host page-locked memory mapping:       YesAlignment requirement for Surfaces:            YesDevice has ECC support:                        DisabledDevice supports Unified Addressing (UVA):      YesDevice supports Managed Memory:                YesDevice supports Compute Preemption:            YesSupports Cooperative Kernel Launch:            YesSupports MultiDevice Co-op Kernel Launch:      YesDevice PCI Domain ID / Bus ID / location ID:   0 / 1 / 0Compute Mode:< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 12.4, CUDA Runtime Version = 12.0, NumDevs = 1
Result = PASS

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/78510.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78510.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78510.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

東南亞與中東小游戲市場出海調研報告

東南亞與中東小游戲市場出海調研報告 目標市場篩選與概況 (The Gaming Market in Southeast Asia (SEA) | Allcorrect)圖:2018–2027年東南亞主要國家游戲市場收入(億美元)趨勢。到2024年東南亞游戲市場規模預計將接近300億美元 (2024年東南亞手游市場怎么樣? - 快出海問…

力扣4-最長公共前綴

一.題目 編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴&#xff0c;返回空字符串 ""。 示例 1&#xff1a; 輸入&#xff1a;strs ["flower","flow","flight"] 輸出&#xff1a;"fl"示例 2&…

設計模式和單一原則筆記

單一原則&#xff1a;方法 對象 策略模式&#xff1a;方法實現 // 策略接口&#xff08;單一職責&#xff1a;定義計算規范&#xff09; public interface PriceStrategy {boolean match(String type); // 職責1&#xff1a;判斷是否適用該策略double calculate(double pric…

常見正則表達式整理與Java使用正則表達式的例子

一、常見正則表達式整理 1. 基礎驗證類 郵箱地址 ^[a-zA-Z0-9._%-][a-zA-Z0-9.-]\\.[a-zA-Z]{2,}$ &#xff08;匹配如 userexample.com&#xff09;手機號 ^1[3-9]\\\\d{9}$ &#xff08;匹配國內11位手機號&#xff0c;如 13812345678&#xff09;中文字符 ^[\u4e00-\u9fa5…

vue2 項目的 vscode 插件整理

Folder Selector 當項目文件很多時&#xff0c;查找一個文件&#xff0c;可能需要在資源管理器中不斷的滾動再打開文件夾查找文件&#xff0c;很麻煩&#xff0c;這個可以增加一個面板通過右鍵文件夾選擇 然后在面板中查看文件 Reveal Button 文件中跳轉到另一個文件時&#…

使用 Node、Express 和 MongoDB 構建一個項目工程

本文將詳細介紹如何使用 Node.js Express MongoDB 構建一個完整的 RESTful API 后端項目&#xff0c;涵蓋&#xff1a; 項目初始化 Express 服務器搭建 MongoDB 數據庫連接 REST API 設計&#xff08;CRUD 操作&#xff09; 錯誤處理與中間件 源碼結構與完整代碼 部署建…

如何實現Spring Boot應用程序的安全性:全面指南

在現代 Web 開發中&#xff0c;安全性是 Spring Boot 應用程序的核心需求&#xff0c;尤其是在微服務、云原生和公開 API 場景中。Spring Boot 結合 Spring Security 提供了一套強大的工具&#xff0c;用于保護應用程序免受常見威脅&#xff0c;如未經授權的訪問、數據泄露、跨…

無人機避障——Mid360+Fast-lio感知建圖+Ego-planner運動規劃(胎教級教程)

電腦配置:Xavier-nx、ubuntu 18.04、ros melodic 激光雷達:Livox_Mid-360 結果展示:左邊Mid360+Fast-lio感知建圖,右邊Ego-planner運動規劃 1、讀取雷達數據并顯示 無人機避障——感知篇(采用Livox-Mid360激光雷達獲取點云數據顯示)-CSDN博客 看看雷達數據話題imu以及…

數據庫證書可以選OCP認證嗎?

直接回答&#xff1a;國內OCP認證持有者的年薪普遍在15萬到40萬元之間&#xff0c;具體收入與經驗、地區和行業強相關。OCP認證能大幅提升求職競爭力&#xff0c;但薪資天花板仍由個人能力決定。 一、薪資范圍和核心影響因素 OCP認證是Oracle數據庫領域的中高級“技術通行證”…

MySQL 從入門到精通:第二篇 - 數據類型、約束與索引

1. MySQL數據類型詳解 數值類型 整數類型 -- 常用整數類型及范圍 CREATE TABLE integer_types (tiny_col TINYINT, -- 1字節,有符號(-128~127),無符號(0~255)small_col SMALLINT, -- 2字節,有符號(-32768~32767),無符號(0~65535)medium_col MEDIUMINT,

Arduino 入門學習筆記(二):開發環境搭建

Arduino 入門學習筆記&#xff08;二&#xff09;&#xff1a;開發環境搭建 B站學習鏈接&#xff1a;link 1. Arduino IDE2軟件介紹 Arduino IDE&#xff0c;Arduino Integrated Development Environment&#xff0c;即Arduino集成開發環境。 Arduino IDE具有程序編輯、調試…

ChatGPT、deepseek、豆包、Kimi、通義千問、騰訊元寶、文心一言、智譜清言代碼能力對比

均使用測試時的最強模型 均是一次對話,對話內容一樣 均開啟深度思考 能聯網的都聯網了&#xff0c;但是作用不大&#xff0c;因為藍橋杯剛考完&#xff0c;洛谷題目剛上傳沒多久 問題一測試了兩遍 從問題三開始不再測試智譜清言&#xff08;它思考時間太長了&#xff0c;前兩個…

OCR之身份證識別

前言 OCR身份證識別是光學字符識別技術在身份證領域的應用。通過掃描或拍照獲取身份證圖像&#xff0c;利用圖像處理、深度學習等技術&#xff0c;自動提取姓名、性別、民族、出生日期、地址、身份證號等信息&#xff0c;可大幅提升信息錄入效率&#xff0c;廣泛應用于政務、金…

線性代數—向量與矩陣的范數(Norm)

參考鏈接&#xff1a; 范數&#xff08;Norm&#xff09;——定義、原理、分類、作用與應用 - 知乎 帶你秒懂向量與矩陣的范數(Norm)_矩陣norm-CSDN博客 什么是范數&#xff08;norm&#xff09;&#xff1f;以及L1,L2范數的簡單介紹_l1 norm-CSDN博客 范數&#xff08;Norm…

Java高頻面試之并發編程-08

hello啊&#xff0c;各位觀眾姥爺們&#xff01;&#xff01;&#xff01;本baby今天來報道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面試官&#xff1a;說說sleep和wait的區別&#xff1f; 1. 核心區別總結 特性sleep()wait()所屬類Thread 類的靜態方法Object 類的實例方法…

Spring-Ai-McpSever從外到內

MCP是什么 Model Context Protocol (MCP) 是一個開放協議&#xff0c;它使 LLM 應用與外部數據源和工具之間的無縫集成成為可能。無論你是構建 AI 驅動的 IDE、改善 chat 交互&#xff0c;還是構建自定義的 AI 工作流&#xff0c;MCP 提供了一種標準化的方式&#xff0c;將 LL…

ubuntu22.04 命令行修改靜態ip

傳統interfaces文件配置&#xff08;適用于舊版&#xff09;即便我們已經在桌面上配置了固定ip 這里也可以修改 ?編輯配置文件? 修改/etc/network/interfaces&#xff08;需安裝net-tools&#xff09;&#xff1a; # interfaces(5) file used by ifup(8) and ifdown(8) # In…

計算機網絡學習筆記 4-6章

第 4 章 網絡層 【考綱內容】 &#xff08;一&#xff09;網絡層的功能 異構網絡互連&#xff1b;路由與轉發&#xff1b;SDN 基本概念&#xff1b;擁塞控制 &#xff08;二&#xff09;路由算法 靜態路由與動態路由&#xff1b;距離 - 向量路由算法&#xff1…

力扣hot100_子串_python版本

一、560. 和為 K 的子數組 思路&#xff1a;這就是一道典型的前綴和的題代碼: class Solution:def subarraySum(self, nums: List[int], k: int) -> int:presum [0] * (len(nums) 1)for i, x in enumerate(nums):presum[i 1] presum[i] x # 前綴和序列需要n1個ans 0…

猿人學web端爬蟲攻防大賽賽題第15題——備周則意怠-常見則不疑

解題步驟 1、觀察抓的包 2、有個m參數&#xff0c;一看就是經過處理的&#xff0c;我們得知道m是如何組成的。看Initiator模塊。 3、還是看request函數&#xff0c;往上一看就看到了m的賦值操作。 打斷點&#xff0c;觸發。 4、看下window.m()的定義 5、比較好理解的&#x…