CCNN

Chinese Convolutional Neural Networks


 CCNN,一款完全自主开发的国产人工智能学习推理框架,自带算法,支持多个平台,可用于多元回归、多元分类、图像、语音及文字识别等深度学习领域。该学习推理框架GPU加速可以兼容使用CUDA(美国Nvidia公司框架)、Rocm(美国AMD公司框架)及OpenCL(全球开放的、免版税的)开发标准,仅仅使用CUDA、Rocm或OpenCL最基本的多线程计算网格划分操作及线程同步。没有GPU设备的时候,也可以使用CPU多线程加速,CPU加速使用C++ OpenMP并行计算,但相比GPU速度会慢很多。CCNN无论是GPU、CPU所用的算法程序全部自己实现,没有用到第三方库。

 框架支持通过配置XML来描述各个算子参数及网络连通情况,来配置不同的神经网络结构,各类算子支持自动微分。目前配置了:多元回归、多元分类、VGG16 、VGG19、ResNet50、ResNet101、SegNet、Deelplab v3、UNet、SSD、DSSD、YoloV3、RNN、GRU、Seq2Seq(带注意力)、Bert、Transformer大模型等,也可以自己调用SDK配置各类网络结构。

 框架已支持多卡并行训练、推理。预计2025年5月份发布新版本,支持fp16,fp8精度。2025年9月份,支持集群训练、推理。

推荐国产龙芯+OpenCL。

一 snapshot:



二 运行环境:

CCNN采用宏定义来兼容不同的平台及编译器,对于系统及编译器的不同,使用不同的系统函数来实现同样的功能。主要体现在线程的API函数、字符串处理等少量系统函数。程序编译的时候根据宏定义选择对应的系统函数,实现维护开发一套源代码,可以在不同环境下使用运行。 目前CCNN可以运行在Windows、Ubuntu Linux、UOS Linux、arm Linux、龙芯Linux及Apple Mac系统中。 不使用GPU加速的时候,不需要GPU显卡设备,使用GPU需要安装对应的显卡驱动。 使用GPU加速的时候,使用CUDA、Rocm或OpenCL计算框架,GPU加速设备可使用NVIDIA显卡(CUDA)、AMD显卡(OpenCL、Rocm)、Intel显卡(OpenCL)、MAC GPU(OpenCL)、国产摩尔线程S80(OpenCL)显卡及国产风华二号(OpenCL)显卡。

三 运行速度测试:

人工智能的计算量主要为全连接、卷积算子的计算。同时不同的网络结构、不同的GPU硬件,不同的参数配置,运行时间不同,下面给出一些部分实验数据。以BatchSize为16,不同的网络模型,进行一次学习迭代所需的平均时间。

对应模型及GPU YOLO V3 ResNet50 DSSD SegNet
RX580(OpenCL) 15秒 5秒 39秒
4秒
GTX1080(CUDA) 5秒
1.2秒
9.8秒 3秒
7800XT(Rocm) 1.8秒
1秒
3.5秒 1秒

四 算法功能:


五 内存:

使用参数内存池、计算空间交换内存池,不动态开辟内存,计算过程中使用的内存全部来源于内存池,数据在网络计算流动的时候快速指向定位,没有多余的复制;相比其它人工智能框架极大的减少对内存、GPU显存的需求量。


六 训练及推理:

 

训练:使用自带的训练程序及配置XML文件来训练,也可以通过调用SDK构建网络训练。

推理:通过调用SDK推理,网络结构可以从XML加载或SDK加载。

七 开发SDK下载

龙芯OpenCL Linux版   X86 CUDA Linux版    X86 Rocm Linux版    苹果 OpenCL macOS版    X86 CUDA Windows版

八 联系方式

   反馈问题及技术交流: zqgrmkl@sohu.com 

皖ICP备2022007635号-1