Skip to content

Instantly share code, notes, and snippets.

Mars hewumars

Block or report user

Report or block hewumars

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@hewumars
hewumars / ReadBinFile.c
Last active Jun 22, 2019
1.cnet.py --path 模型保存路径 --name 模型名称 --shape 1 3 16 56 --outputs prob1 rect1 fc1x 执行caffe推理生成输入bin,输出bin 2.bin2float.py caffe_out.bin npu_out.bin 0.001 对比输出bin和其他硬件推理引擎获得的输出bin 3.utils.py工具生成随机数据或者读取jpg
View ReadBinFile.c
//读取二进制文件,用于numpy.tofile生成的随机数据,或者是图像rgb数据。模型验证时使用。
char* ReadBinFile(const char *file_name, uint32_t *fileSize)
{
std::filebuf *pbuf;
std::ifstream filestr;
size_t size;
filestr.open(file_name, std::ios::binary);
if (!filestr)
{
return nullptr;
View readme.md
  • Data
  • Convolution
  • Correlation
  • Correlation_V2
  • Deconvolution
  • Pooling
  • Eltwise
  • ReLU
  • ReLU6
  • Sigmoid
View run_tvm.sh
#float32
python3 evaluate.py --rec-val mxnetdatasets/ImageNet100.rec --target "llvm -mcpu=core-avx2" --original #10ms
python3 evaluate.py --rec-val mxnetdatasets/ImageNet100.rec --target "cuda" --original #1ms
#int8
python3 evaluate.py --rec-val mxnetdatasets/ImageNet100.rec --target "llvm -mcpu=core-avx2" #21ms
python3 evaluate.py --rec-val mxnetdatasets/ImageNet100.rec --target "cuda" #2.1ms
int8更慢什么情况?继续熟悉代码。
View 20190619-eadme.md

注:

  1. 图像预处理部分存在差异ImagePreProcess_1使用DVPP进行resizeImagePreProcessPillow_1使用OpenCV进行resize
  2. 模型差异:npu推理是模型进过AIPP进行融合预处理后的模型
模型 余弦距离 最大绝对误差 相对欧氏距离 标准差
Pedestrian 0.9823884 0.027 0.18713343 (0.027,0.027)(0.026,0.028)
PedestrainGlobal 0.9898 0 - 0.239
View updata_cmake.sh
wget http://www.cmake.org/files/v3.5/cmake-3.5.1.tar.gz //连接网络
tar xf cmake-3.5.1.tar.gz
cd cmake-3.5.1
./configure --prefix=/usr // 配置选择安装路径
make
sudo make install
cmake --version
View readme.md

[TOC]

使用MXNet实现生产级神经网络模型量化推理

介绍

在深度学习中,推理用于部署预训练的神经网络模型来执行图像分类,对象检测和其他预测任务。在现实世界中,尤其是企业中,推理非常重要,因为它是分析流程的一个阶段,根据生产级数据向终端用户提供有价值的结果。来自终端用户的大量推理请求不断被路由到全世界的云服务器。

推理性能的主要衡量标准是延迟latency,或完成预测所需的时间 - 更短的延迟可确保良好的用户体验。单批推断在生产级推理中非常常见,因此它具有CPU友好性。

View readme.txt
BatchNorm
Concat
Convolution
Crop
Deconvolution
DummyData
Eltwise
Flatten
InnerProduct
LRN
View 20170922.md
网络: yolo_v2 caffe TRT-FP32 TRT-INT8
608*608
显存 526MB 475MB 317MB
召回率 行人 92.06% 91.40% 89.97%
准确率 66.52% 64.95% 65.62%
召回率 车辆 97.91% 99.48% 98.71%
准确率 58.48% 50.66% 53.39%
召回率 三轮车 96.09% 95.73% 96.58%
准确率 90.53% 87.66% 88.74%
View readme.md

[TOC]

TVM为NVIDIA GPU自动调优卷积网络

针对特定设备和工作负载进行自动调优对于获得最佳性能至关重要。这篇教程是关于TVM如何为NVIDIA GPU调优整个卷积网络。

TVM中NVIDIA GPU的算子实现是以模板template形式编写的。模板有许多可调旋钮knobs(平铺tile因子,展开unroll等)。我们将调优神经网络中的所有convolutindepthwise-convolution算子。调优后,我们生成一个log文件,存储所有需要的算子的最佳旋钮值。当TVM编译器编译这些算子时,它将查询此log文件获得最佳旋钮值。

我们还为一些NVIDIA GPU发布了预先调优的参数。您可以访问NVIDIA GPU Benchmark查看结果。

View readme.md

[TOC]

TVM使用autotvm调优NVIDIA GPU上的高性能卷积

这是为NVIDIA GPU编写高性能可调模板的高级教程。通过在此模板上运行自动调优器,在许多情况下,我们可以胜过供应商提供的CuDNN库。

加载依赖库

安装步骤与TVM Compiler中文教程:使用TVM编写可调模板和使用自动调优器中步骤一样,安装相应的软件包即可。

You can’t perform that action at this time.