5 Star 12 Fork 4

DENGCHOW / XhngGPU

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

18:57 2024/5/11

star fork
GitHub License

一、简介

XhngGPU,一个基于 WDDM 框架的 GPU 项目,可在 Windows 10 系统中安装使用

二、功能介绍

项目框架

注:框图中的阴影部分尚未实现

Host

Device

Display Unit

GPU Core

注:目前尚未在 FPGA 中添加 GPU Core 的实现,仅在 RTL 仿真中进行了测试

Vertex Shader

注:由于 FPGA 的资源限制,暂时删除 PA 模块的实现(10:06 2024/5/22)

Rasterizer & Pixel Shader

注:由于 FPGA 的资源限制,暂时只保留一路 RU + TU(15:53 2024/5/23)

注:目前 TU 在实现上为一个 1x 的像素着色器,每次计算一个 Pixel(12:13 2024/5/27)

三、渲染管线

由于 FPGA 资源的限制,以及在设计之初,选择以改造 FPU 的方式实现 GPU,VS 和 Raster 模块已消耗了大量的 LUT,导致无法按照最初的的架构进行设计(目前选择了一种折中的方案,RU 和 TU 只保留一路,即每次只能处理一个 Pixel

  1. 在 VS 阶段,每次只处理 1 个 Vertex

  2. 在 Raster 阶段,每次只处理 1 个 Triangle(包含 3 个 Vertex)

  3. 在 PS 阶段,每次只处理 1 个 Pixel

注:目前设计的 GPU 无法达到任何并行效果,每次只能处理 1 个 Pixel,在 20MHz 主频下,理论最大像素填充为 320K Pixel/s

四、环境搭建

Host 环境

Visual Studio 2022

Device 环境

Xilinx Vivado 2020

  1. 进入 hardware\xproj 路径下,打开 Terminal

  2. 修改 auto.bat,修改 Vivado 启动程序的路径

  3. 双击运行 auto.bat,创建 Vivado 工程

资源统计

LUTs ACPU VS Raster PS Display
FALU(1561 LUTs) 4 x 3 = 12 6 + 4 + 2 = 12 3 x 3 = 9
FMAU(2145 LUTs) 4 x 4 = 16 8 3 x 4 = 12
FDSU(2987 LUTs) 0 2
Total 3923 53052 41866/RU 39789 32045

注:项目中使用的是双精度 FPU,暂未优化。并且上述统计均为最大并行时所需的资源数量,即最大资源消耗

五、效果演示

安装设备驱动

注:由于不支持 Basic Display,因此需要借助第三方显卡进行首次驱动的安装,正确安装驱动后,可以移出第三方显卡

查看显示设置

注:目前只支持 1280x720 的分辨率。可以切换到 800x600 分辨率进行显示,但显示器窗口固定为 1280x720

六、展望

Think of you, do just it.

XhngGPU FG Logic Cells$^1$ Series$^2$ Platform$^3$
Core Flexible GPU Number of Logic Cells Product Series Platform Type
325T: 325K Logic Cells R: Render + Display X: Xilinx
D: Display only A: Altera
G: GPGPU F: 复旦微
G: 高云
N: 安路
I: 智多晶
H: 京微齐力
P: 紫光同创

注$^1$:不同 FPGA 平台的 Logic Cells 的计算方式不同,统一换算为 Xilinx 平台上对 Logic Cells 的定义方式

注$^2$:使用单个大写英文字符进行标识

注$^3$:使用单个大写英文字符进行标识,优先使用制造商名称的首字母,名称冲突时后者使用名称的第二个字母,以此类推

例如: XhngGPU FG 325T RX 表示基于 Xilinx 平台的支持 Render + Display 的显卡,Logic Cells 数量为 325K

七、修改日志

  • v1.1

    • 添加使用文档(10:34 2024/6/19)
  • v1.0

    • 创建项目并集成测试(18:58 2024/5/11)

八、维护

如果有任何疑问或者建议,欢迎在下方评论

ATONEMAN
2024/5/11

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

XhngGPU,一个基于 WDDM 框架的 GPU 项目,可在 Windows 10 系统中安装使用 展开 收起
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/dengchow/XhngGPU.git
git@gitee.com:dengchow/XhngGPU.git
dengchow
XhngGPU
XhngGPU
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891