nn_dataflow 项目使用教程

nn_dataflow 项目使用教程

nn_dataflowExplore the energy-efficient dataflow scheduling for neural networks.项目地址:https://gitcode.com/gh_mirrors/nn/nn_dataflow

1. 项目的目录结构及介绍

nn_dataflow/
├── nn_dataflow/
│   ├── core/
│   │   └── nn_dataflow.py
│   ├── nns/
│   ├── tests/
│   ├── tools/
│   │   └── nn_dataflow_search.py
│   ├── __init__.py
│   ├── gitignore
│   ├── pylintrc
│   ├── travis.yml
│   ├── CHANGELOG.md
│   ├── LICENSE
│   ├── MANIFEST.in
│   ├── README.rst
│   ├── requirements.txt
│   └── setup.py
├── .gitignore
├── pylintrc
├── travis.yml
├── CHANGELOG.md
├── LICENSE
├── MANIFEST.in
├── README.rst
├── requirements.txt
└── setup.py

目录结构介绍

  • nn_dataflow/core/: 包含核心代码文件 nn_dataflow.py,负责神经网络数据流调度的实现。
  • nn_dataflow/nns/: 定义了多个流行的神经网络结构,如 AlexNet、VGG-16、GoogLeNet、ResNet-152 等。
  • nn_dataflow/tests/: 包含单元测试代码,用于验证工具的正确性。
  • nn_dataflow/tools/: 包含可执行工具 nn_dataflow_search.py,用于搜索神经网络的最优数据流。
  • __init__.py: Python 包的初始化文件。
  • gitignore: Git 忽略文件配置。
  • pylintrc: Pylint 代码风格检查配置文件。
  • travis.yml: Travis CI 持续集成配置文件。
  • CHANGELOG.md: 项目更新日志。
  • LICENSE: 项目许可证文件。
  • MANIFEST.in: 打包配置文件。
  • README.rst: 项目介绍文档。
  • requirements.txt: 项目依赖库列表。
  • setup.py: 项目安装脚本。

2. 项目的启动文件介绍

nn_dataflow/tools/nn_dataflow_search.py

该文件是项目的启动文件,用于搜索神经网络的最优数据流。可以通过以下命令运行:

python nn_dataflow/tools/nn_dataflow_search.py -h

该命令将显示详细的使用选项,包括神经网络批量大小、字长、PE 阵列维度、瓦片节点数量、寄存器文件和全局缓冲区容量以及所有组件的能量成本等。

3. 项目的配置文件介绍

requirements.txt

该文件列出了项目运行所需的 Python 依赖库。可以通过以下命令安装这些依赖:

pip install -r requirements.txt

setup.py

该文件是项目的安装脚本,可以通过以下命令安装项目:

pip install .

或者在本地用户安装目录中安装(无需 sudo 权限):

pip install --user -e .

pylintrc

该文件是 Pylint 代码风格检查的配置文件,用于确保代码风格的一致性。

travis.yml

该文件是 Travis CI 持续集成配置文件,用于自动化测试和部署。

LICENSE

该文件是项目的许可证文件,遵循 BSD 许可证。

README.rst

该文件是项目的介绍文档,包含了项目的概述、安装方法、使用说明等信息。

nn_dataflowExplore the energy-efficient dataflow scheduling for neural networks.项目地址:https://gitcode.com/gh_mirrors/nn/nn_dataflow

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <nanomsg/nn.h> #include <nanomsg/reqrep.h> #define SERVER_ADDRESS "tcp://127.0.0.1:5555" // 服务器地址 int main() { int sock = nn_socket(AF_SP, NN_REP); // 创建一个REP类型的socket if (sock < 0) { fprintf(stderr, "nn_socket error: %s\n", nn_strerror(nn_errno())); return -1; } if (nn_bind(sock, SERVER_ADDRESS) < 0) { // 绑定服务器地址 fprintf(stderr, "nn_bind error: %s\n", nn_strerror(nn_errno())); nn_close(sock); return -1; } printf("server started, waiting for client...\n"); while (1) { char *buf = NULL; int bytes = nn_recv(sock, &buf, NN_MSG, 0); // 接收客户端请求消息 if (bytes < 0) { fprintf(stderr, "nn_recv error: %s\n", nn_strerror(nn_errno())); nn_close(sock); return -1; } printf("server received: %s\n", buf); if (strcmp(buf, "123") == 0) { // 判断客户端请求消息是否为"123" char *response = "abc"; int response_len = strlen(response) + 1; int bytes = nn_send(sock, response, response_len, 0); // 发送回复消息 if (bytes < 0) { fprintf(stderr, "nn_send error: %s\n", nn_strerror(nn_errno())); nn_close(sock); return -1; } } else { printf("invalid request\n"); } nn_freemsg(buf); // 释放接收到的消息内存 } nn_close(sock); // 关闭socket return 0; } 以上是一个服务端代码,客户端发送内容“123”服务器回复“abc”,我想要新增当服务端接受到一段json信息为{"module":"1","from":"2","time":"","service":"get_dp_version","args":[]}时,回复客户端一个json为{"module":"2","from":"3","time":"","service":"response_dp_version","data":{"dp_version":"v0.1"}},使用libjansson,json部分单独放在函数里,不要都堆在主函数里
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

施想钧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值