Skip to content
/ CUFX Public

晚上下班不刷手机,学点什么。系列一:CUDA 计算框架 CUFX (Cuda Framework eXtended)。

Notifications You must be signed in to change notification settings

muyuuuu/CUFX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUDA 计划

如果你有幸学过 OpenCL 的话,会发现 cuda 异常简单,甚至能用个周六日学完。

想着在下班时间学点什么,刷视频打游戏总不是办法。有时候下班都 22 点甚至更晚,但还是要顶住,哪怕学 10 分钟呢?想来想去决定从 cuda 开始了,本系列计划由两部分组成:

  • 第一部分是 cuda 编程基础,持续更新
  • 第二部分是 cuda 优化模型

不过搞完第一部分后我应该会去学 C++,把一切基础知识准备就绪后开始学习 cuda 优化模型。

CudaBase

CudaBase 文件夹下,每个文件夹下配有文档和代码示例。下班时间很少,努力保证代码质量,但文档写的很急 ...... 如果没有特别声明,所有编译和运行的方式均为:

nvcc main.cu
./a.out

后续会过度到 cmake,cmake 的编译方式为:

cd build
cmake ..
make install
./bin/main
  1. 1helloworld,安装与运行 hello world 级别的代码
  2. 2threadid,线程模型中的索引计算
  3. 3matrixadd,矩阵加法。小用一手模板,宏的黑魔法,以及避免内存泄漏
  4. 4runtime,运行时。继续使用模板精简代码,运行时信息查询,函数计时等
  5. 5memorymodel,内存模型。全局内存、局部内存、共享内存、统一内存等,并全部使用 cmake 编译和管理
  6. 6arch,计算架构相关的东西,流多处理器、延时隐藏、线程束分化等问题
  7. 7stream,多流计算,流同步、回调等

CUFX

cuda 计算框架 CUFX,取自单词 Cuda Framework eXtended 用来装逼。包含一些算子的实际项目,严格组织代码结构,TODO:

  • 线程池
  • 内存池
  • 一些优雅的 C++ 实现
  • 一些高性能 cuda 算子
  • 可对外提供动态库,直接使用

下班后有点头晕眼花,但还是在艰难施工中。施工的代码较为简陋,只能保证有一些基本功能。以自动化测试为例,也许你听闻过 NEW_TESTCASE 这种经典的写法,目前缺少精力去抄代码,用宏定义实现了简单的测试功能,目前还有一些其他东西要学习。 也许哪天学到高大上的写法,比如一些好的日志实现,好的架构组织,我就回来填坑。 如果你有想法,哪怕是练手,想练习一个内存池,也欢迎。

About

晚上下班不刷手机,学点什么。系列一:CUDA 计算框架 CUFX (Cuda Framework eXtended)。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published