该库用于保存自己写的CUDA算子
算子因该具备的特性:
- 易迁移性
- 性能优
- 支持GPU和CPU
- 支持多线程 (或者是防止线程冲突)
在这个模块中,分别对比单线程与多线程的运行时间。对比结果如下表所示:
CPU运行时间 | GPU运行时间 | 备注 |
---|---|---|
1.186S | 3.257e-05S | GPU在使用加法的时候使用了原子操作 |
在单线程中,通用矩阵乘法(GEMM)通常有两个优化方向链接,一是基于计算方法本身,二是基于软件结构的方法。
1.CPU版本的CNN操作
卷积的尺寸计算关系为:
下面是各种改进算法在CPU中的的计算时间
原始算法运行时间 | 改进算法1运行时间 | 改进算法2运行时间 |
---|---|---|
32.48S |
改进算法1:
改进算法2:
2.GPU版本的CNN操作
改进算法1:im2col
改进算法2:
3.CPU与GPU版本的操作时间对比