Skip to content

Latest commit

 

History

History
78 lines (43 loc) · 2.9 KB

README.md

File metadata and controls

78 lines (43 loc) · 2.9 KB

myECE408

阅读英语版本: English.

ECE408 是伊利诺伊大学厄巴纳-香槟分校提供的一个很好的课程,主要学习 CUDA。但是,对于没有在 UIUC 就读的学生来说,要跟进实验和项目可能比较困难,因为需要访问特定的计算资源。

这个项目旨在使用你自己的本地环境(GPU,系统等)更容易地学习 ECE408 的教材。它提供了该课程关键作业的实现,这样你就可以获得手工操练 CUDA 的经验。

ECE408 课程表: https://wiki.illinois.edu/wiki/display/ECE408/Class+Schedule

ECE408 实验和项目: https://wiki.illinois.edu/wiki/display/ECE408/Labs+and+Project

成果

完成这个项目后,你将:

  • 获得实际的 CUDA 编程经验

即使没有访问 UIUC 的特定基础设施,你也可以对 ECE408 的关键概念获得动手实践。如果课程内容有任何不清楚或遗漏的地方,请让我知道 - 我很高兴补充更多细节以涵盖完整的课程。

使用

这是一个包含单独 ECE408 CUDA 实验和项目文件夹的仓库。

要运行它们,请执行以下步骤:

  1. 在本地克隆此仓库,可以使用 git clone 或从 GitHub 下载 zip 文件并提取。

  2. 每个实验和项目都有一个 CMake 文件用于编译。进入子文件夹,创建一个构建目录,并运行 cmake .. 命令生成 Makefile。

  3. 使用 make 命令编译和生成可执行文件。

以下是英文版的里程碑项目和实验的单独解释:

里程碑项目:

  1. 项目代码在 mini-dnn/GPU_conv_baseline.cu 中。这是一个基础的 CUDA 卷积层实现。

  2. 你需要修改这个文件,并利用学到的 CUDA 优化技术来加速卷积计算,比如共享内存,循环展开等。

  3. 你可以逐步优化,每次实现一个技术。测试并记录速度提升。

  4. 目标是尽可能最大程度地提高卷积层的执行速度,达到峰值性能。

  5. 在 GitHub 上提交你的优化代码,以便与他人的结果进行比较。

实验:

  1. 每个实验都有一个单独的文件夹,其中包含代码模板。

  2. 你需要编辑指定的文件,并根据实验要求完成代码。

  3. 这些实验涵盖了各种 CUDA 编程方面,比如内存、线程等。

  4. 运行 'run_datasets' 以验证正确的实现。

MP0结果:GPU 详细信息

有 1 个设备支持 CUDA

设备 0 名称:NVIDIA GeForce RTX 4090

  • 计算能力:8.9
  • 最大全局内存大小:25756696576
  • 最大常量内存大小:65536
  • 每个线程块的最大共享内存大小:49152
  • 最大线程块维度:1024 x 1024 x 64
  • 最大网格维度:2147483647 x 65535 x 65535
  • Warp 大小:32

结果显示我的系统有 1 个 GPU(NVIDIA GeForce RTX 4090)可用于 CUDA 计算,具有 24GB 内存和计算能力 8.9。

GPU 最多可以支持 1024 x 1024 x 64 个线程的线程块,以及非常大的网格维度进行并行处理。

这个输出证明我的 GPU 设置已正确配置为运行 CUDA 程序和神经网络训练。