必威电竞|足球世界杯竞猜平台

nouveau
來源:互聯網

這是一個旨在為英偉達的GPU建立高質量的,免費自由的開源驅動項目,nouveau"[nuvo]"與new諧音,是Linux KMS驅動的一部分,最新的版本在Linux內核中支持Nvidia的帕斯卡架構。

軟件介紹

nouveau(英語:/nu??vo?/)是一個自由開放源代碼的圖形設備驅動程序,主要為Nvidia的視頻卡和Tegra系列SoCs編寫,由獨立軟件工程師開發,部分Nvidia員工也提供了幫助。該項目的目標是通過逆向工程英偉達的專有Linux驅動程序來創建開源驅動程序。它由X.Org基金會管理,由freedesktop.org托管,并作為Mesa 3D的一部分進行分發。該項目最初基于僅支持2D的免費開源“nv”驅動程序,后因該驅動程序被認為存在混淆而發展出nouveau。nouveau根據MIT許可證授權。

軟件架構

nouveau是一種Gallium3D風格的設備驅動程序,建立在Direct Rendering Infrastructure(DRI)之上。它由兩個內核組件DRM和KMS驅動程序以及用戶空間組件libDRM和Mesa 3D組成。nouveau旨在支持所有英偉達微架構,包括Tesla、Fermi、Kepler、麥克斯威(上海)商貿有限公司,并在1.0.13版本中支持Pascal,在1.0.15版本中支持Volta,1.0.16版本增加了對Turing的支持。

重新時鐘

由于缺乏Nvidia GPU的文檔,nouveau在最初缺乏重新時鐘的能力,導致性能損失。2014年6月,nouveau添加了初始的重新時鐘支持。通過1.0.14版本,Pascal支持達到了Maxwell 2的水平。在1.0.15版本中,為GTX 970 4GB添加了一個補丁,并加速了Pascal到Maxwell 2級別。

工具

nouveau的開發人員使用清潔室逆向工程來獲取編寫nouveau所需的數據。該項目使用了幾個自制程序進行逆向工程,例如MmioTrace、REnouveau和Valgrind MMT。

REnouveau

REnouveau是一個用于收集nouveau逆向工程工作數據的程序,它通過復制當前的圖形卡MMIO寄存器空間,繪制一些圖形并再次復制MMIO,并將差異輸出到文本文件。它運行多個不同的測試,然后用戶將計算機的tar.bz2存檔并通過電子郵件提交,供開發人員分析。

支持的接口

只有內核可以直接訪問硬件,包括顯卡。最終用戶軟件透過多種為特定功能所編寫的應用程序接口訪問。Nouveau被以Gallium3D風格驅動程序的方式編寫,這就意味著它與其他Gallium3D驅動程序共享大多數的代碼。多數此種共享代碼都在Mesa 3D中可看到,并由各Linux發行版進行散布。

渲染API

Mesa 3D及其包含的驅動程序支持多種渲染接口,包括OpenGL和Vulkan。nouveau通過實驗性的NVK驅動程序支持一些Vulkan API。

Direct3D

Direct3D第9版的自由及開放源代碼實做在Mesa 3D可看到。它可以被nouveau所使用。但任何使用Direct3D的軟件都是為Windows所編寫的,所以這個軟件只能在Linux上與Wine一起使用。

OpenGL

數據和指令被發送到 GPU 進行處理。呈現的結果不會發送回主內存。相反,它們存儲在幀緩沖區中。幀緩沖區的內容隨后被發送到顯示控制器。

渲染接口 OpenGL 由 Khronos Group 開發。此 API 的實現是 英偉達 驅動程序和 AMD 專有的“Catalyst”的一部分。另一個實現是由自由軟件愛好者編寫的,比如Brian Paul或英特爾,并在Mesa 3D中進行協調。作為 Gallium3D 類型的驅動程序,nouveau 只需要稍作調整即可使用此實現。

Vulkan

截至2023年12月,Nouveau 通過實驗性 NVK 驅動程序提供了一些 Vulkan API 支持。

視頻加速

Mesa 3D支持多重呈現界面,所有已設計好的用戶空間程序,像是GStreamer等程序都可以訪問相對應的SIP塊。也可以使用為了這個目的設計的電子電路,雖然這樣做會相對于使用PureVideo來說消耗更多的電量。nouveau 支持 PureVideo,并通過 VDPAU 和部分通過 XvMC 提供對 PureVideo 的訪問。nouveau 不支持 英偉達 NVENC。

計算API

OpenCL

在梅薩,GalliumCompute 也是 Nvidia 的主要項目,但只有 AMD 部分接近 OpenCL 1.0、1.1 和 1.2 的測試版。

CUDA

nouveau 不支持 CUDA。

通過 Coriander 項目,可以在 OpenCL 1.2 中轉換 CUDA 代碼

GPU系統處理器

英偉達獵鷹

大約在 2006 年,Nvidia 將 FALCON(FAst Logic CONtroller)引入其 GPU。

諾如病毒RISCV

在 2016 年 7 月的第 4 屆 RISC-V 研討會上,英偉達 員工介紹了他們用基于 RISC-V 指令集的新專有定制設計取代 FALCON 的計劃。

發展歷史

2005年,Stéphane Marchesin在“nv”驅動器上推出了一系列補丁,并于2006年2月在FOSDEM活動上正式宣布。

2007年, Linux.conf.au,nouveau的第一次現場演示。2010年,nouveau在2.6.33版本的Linux內核中被接受為實驗性驅動程序。2012年3月26日,nouveau驅動程序被標記為穩定版,并從Linux 3.4的暫存區升級。Nouveau 在 Linux 3.7 中進行了一次重大的內部架構改革。

nouveau 最初使用 Mesa 3D 的直接渲染基礎設施 (DRI) 來渲染 3D 計算機圖形,這允許直接從 3D 應用程序使用圖形處理單元 (GPU) 加速 3D 繪圖;但在 2008 年 2 月,DRI 支持工作停止并轉向新的 Gallium3D。

2013 年 9 月23日, 英偉達 公開宣布,他們將發布一些關于其 GPU 的文檔,旨在解決影響 NVIDIA GPU 開箱即用可用性的領域。

截至 2014 年 1 月 31 日,Nvidia 的 Alexandre Courbot 發布了一個廣泛的補丁集,增加了對 GK20A (Tegra K1) 的初始支持。

截至 2016 年 7 月 9 日,Red Hat 員工 Ben Skeggs 提交了一個補丁,該補丁在 Linux 內核中添加了對 GeForce GTX 1070 和 GeForce GTX 1080 品牌顯卡上基于 Pascal 的 GP104 芯片的支持。

2016年的情況和未來的工作于XDC2016年介紹。FOSDEM上顯示了OpenCL中新工作的狀態。

2019 年,英偉達 發布了一些關于其 Kepler、麥克斯威(上海)商貿有限公司、Pascal 和 Volta 芯片組的文檔。

軟件采用

nouveau驅動程序及其在Mesa中的3D對應物已被許多Linux發行版(包括Fedora 11、openSUSE 11.3、Ubuntu 10.04和Debian)用作Nvidia卡的默認開源驅動程序。compiz建議使用nouveau而不是Nvidia專有驅動程序。2014年6月,Codethink報告稱在Linux內核3.15上運行基于Wayland的Weston合成器,利用EGL和“100%開源圖形驅動程序堆棧”在Tegra K1上。2016年10月,netbsd在NetBSD 7中添加了對nouveau的實驗性支持。

參考資料 >

生活家百科家居網