2021SC@SDUSC CUDA实现模幂运算源码分析(1)
发布时间
阅读量:
阅读量
2021SC@SDUSC
CGBN概念解析
CGBN 的典型应用场景在于设计能够处理大量问题实例的核心模块,这些实例均需进行无符号多精度算术运算。传统的 CUDA 实现方式通常为每个问题实例分配独立线程,然而多精度算法对寄存器资源需求较高,因此将多精度数值分配至一组连续线程中会更为高效,这也是 CGBN 设计所遵循的基本原则。
以一个示例内核作为起点,该内核接收一系列问题实例,并针对每个实例执行计算操作,即对 a 与 b 进行加法运算,所得结果存储于 r 中。其中 a 、 b 和 r 均为 1024 位的数值。
#include "cgbn/cgbn.h"
// define a struct to hold each problem instance
typedef struct {
cgbn_mem_t<1024> a;
cgbn_mem_t<1024> b;
cgbn_mem_t<1024> r;
} problem_instance_t;
#define TPI 8 // threads per instance (can be 4, 8, 16 or 32)
全部评论 (0)
还没有任何评论哟~
