CNN
C
C, C, Shell
共32个文件
c: 10
h: 6
sh: 4
json: 3
out: 2
gitignore: 1
md: 1
png: 1
so: 1
makefile: 1
基于Linux C 的, 多核并行卷积运算, 通过配置CPU核, 以提升CPU最大并行计算性能
API调用生命周期
接口函数详情
/*
* 并行高速算法处理接口, ---由江苏捷世智通提供
*
* 2023-03-10: member
* hanguangxue <hanguangxue_x@163.com> - C for PCIE driver and CPU do CNN
* qianmen <qianmen@xx.com> - FPGA for PCIE driver and FPGA do CNN
*
* [中文] 该程序用于并行高速算法处理类接口, 提供需要对相应算法做加速的模块
*
* [English] This program is used for parallel high speed algorithm processing class interface,
* provides the need to do the corresponding algorithm to accelerate the module
*
* version 1.0, 2023-03-10
* support CNN Accelerate
*
*/
#ifndef __JSZT_CNN__H
#define __JSZT_CNN__H
#define uint8 unsigned char
#define uint16 unsigned short
typedef enum {
JS_OK,
JS_FAILED,
/** 参数错误 */
JS_ERROR_BORDER, //卷积数据和卷积核边界错误, 如果卷积数据相对卷积核来说过小则报此错
JS_ERROR_CONFIG, //配置出错, eg: 选择CPU模式的时候, CPU核数给的0
/** 系统错误 */
JS_ERROR_CREATE__TH, //创建线程资源失败,针对某些裁剪后的linux,对线程资源有限制,如果超出系统最大数会返回错误
JS_ERROR_RELEASE_TH, //线程销毁时返回该错误, 销毁线程需要调用 jszt_setEnd 接口
JS_ERROR_MALLOC, //堆内存申请出错
JS_ERROR_NULL, //空指针异常
JS_ERROR_CNNING, //执行卷积运算时出错
} JSZT_CODE;
typedef enum {
CALCULAT_FPGA,
CALCULAT_CPU,
} MODE_CALCULAT;
typedef struct {
uint8 * stream; //流输入, 输入为处理后的流, 1024*1024, 一位占 8bit, 也就是一字节
uint16 width; //流矩阵宽度, width * height 则为 stream 的实际长度
uint16 height; //流矩阵长度
uint8 * cnnker; //卷积核, 同样的一位占 8bit, 长度根据 cnnker_matrix_len 输入解析, 是数组 cnnker_matrix_len (x1+x2+..+x4)²
uint8 ckrlen[4]; //卷积核矩阵长度, 参数 @CNNKER_XX, 按次序输入, 如果是只需要一次, 则 [x,0,0,0], 需要计算2次, 则[x1, x2, 0, 0]
/* 返回参数 */
uint8 * dstream; //处理后的数据, 申请内存大小 >= (width-ckerlen+1)*(height-ckerlen+1)
uint16 dwidth; //处理后矩阵 宽
uint16 dheight; //处理后矩阵 高
} CNN_PARA;
/**
* @details 初始化相关资源
* @param mode 初始化计算类型
* @return 0: 返回OK, 否则返回失败, 查看对应错误信息
*/
extern JSZT_CODE jszt_init(MODE_CALCULAT mode, int CPUS);
/**
* @details 开始计算前预备工作
* @return 0: 返回OK, 否则返回失败, 查看对应错误信息
*/
extern JSZT_CODE jszt_setReady();
/**
* @param cnnPara 调用时需要的参数
* @return 处理后的数据长度, 处理后的数据放在 dstream 中, 直接从 stream 中读取指定长度数据即可
*/
extern JSZT_CODE jszt_CNN(const CNN_PARA *cnnPara);
/**
* @details 计算完成后需要释放的资源
* @return 0: 返回OK, 否则返回失败, 查看对应错误信息
*/
extern JSZT_CODE jszt_setEnd();
/**
* @details 程序结束后需要调用释放的资源
* @return 0: 返回OK, 否则返回失败, 查看对应错误信息
*/
extern JSZT_CODE jszt_destroy();
#endif // !__JSZT_CNN__H
https://gitee.com/han_gx/cnn
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
项目概述:这是一个基于Linux平台,采用纯C语言开发的多核并行卷积神经网络库。该库包含32个文件,其中C源文件10个,头文件6个,Shell脚本4个,以及其他必要的配置文件和图像文件。该库特色在于其高效的多核并行处理能力,能够根据CPU核心配置优化卷积运算,极大地提升了CPU的并行计算性能。 技术细节: - 主要编程语言:C - 文件类型: - C源文件:10个 - 头文件:6个 - Shell脚本:4个 - JSON配置文件:3个 - 输出文件:2个 - 其他(.gitignore, README.md, .png, .so, Makefile等):7个 此库专为追求极致性能的卷积神经网络计算任务而设计,充分利用了现代CPU的多核特性,为复杂神经网络计算提供了高效的解决方案。
资源推荐
资源详情
资源评论
收起资源包目录
upload.zip (33个子文件)
makefile 1KB
include
js_mm.h 491B
logger.h 2KB
cnntools.h 2KB
config.h 176B
jszt_cnn.h 4KB
common.h 2KB
lib
libJsztCNN.so 84KB
.vscode
c_cpp_properties.json 682B
settings.json 842B
launch.json 485B
src
jszt_cnn.c 1KB
js_mm.c 4KB
cnntools.c 4KB
CNN.c 12KB
common.c 587B
system.c 159B
usrapp.c 0B
main.c 7KB
logger.c 322B
check.sh 630B
checkone.sh 430B
start.sh 364B
test
main_test.c 4KB
test.txt 3KB
.gitignore 132B
run.sh 175B
images
tt001.png 31KB
old.bat 1024KB
script
hex.c 2KB
tcheck_x86.out 110KB
tcheck_arm.out 88KB
readme.txt 4KB
共 33 条
- 1
资源评论
沐知全栈开发
- 粉丝: 4743
- 资源: 3374
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功