算法优化汇总
主要讲解算法优化工具、算法优化思想等方面总结
li三河
图像算法、3D开发、深度学习
展开
-
(六)交叉编译aarch64下ncnn框架并进行模型转化
交叉编译aarch64下ncnn框架并进行模型转化原创 2022-07-16 11:56:15 · 386 阅读 · 0 评论 -
(六) 量化研究
1、基本概念量化就是将浮点型实数量化为整型数(FP32->INT8)反量化就是将整型数转化为浮点型实数(INT8->FP32)2、量化操作比如有一个FP32的浮点型数字x=5.234,将这个数变为整型。这个数字乘以一个量化系统s,比如s=100,那么量化后的值,然后对这个数字进行四舍五入(round操作)整型INT8的范围是[-128,127],无符号INT8的范围也才[0,255]。所以需要进行截断,假设INT8范围是,那么上述可以变为:这样计算方式不对原创 2022-04-07 11:58:05 · 1926 阅读 · 0 评论 -
(五) thrust下进行lambda表示式
1、使用lambda进行测试,求解x*x+y*y+z*z。新建test.cu文件#include <thrust/copy.h>#include <thrust/device_vector.h>#include <thrust/functional.h>#include <thrust/generate.h>#include <thrust/host_vector.h>#include <thrust/sort.h>#原创 2022-03-02 09:03:08 · 562 阅读 · 0 评论 -
(四) opencl测试
1、在gpu编写opencl代码#include <iostream>#include <stdlib.h>#include <string.h>#include <stdio.h>#if defined(__APPLE__) || defined(__MACOSX)#include <OpenCL/cl.hpp>#else#include <CL/cl.h>#endifusing namespace std;原创 2022-02-25 15:15:51 · 9553 阅读 · 0 评论 -
(三)MNN与Opencl联合编译
在MNN与opencl进行联合编译中,需要注意一些事项:1、在MNN中cmakelists进行修改后2、在source/backend/opencl/core/runtime中OpenCLWarpper.cpp中文件进行修改。否则在编译过程中不报错,而在执行过程报以下错误:OpenCL init error, fallback ..例如我们使用全志T507的liunx系统进行开发,需要把liunx下opencl链接库进行添加和修改static const std::vector<原创 2022-02-23 20:10:41 · 1667 阅读 · 0 评论 -
(二)MNN aarch64平台交叉编译
在笔记本上进行MNN aarch64的交叉编译原创 2021-12-16 10:20:56 · 2452 阅读 · 0 评论 -
(一)CUDA编程
CPU:擅长流程控制和逻辑处理,不规则数据结构,不可预测存储结构,单线程程序,分支密集型算法GPU:数据并行计算,规则数据结构,可预测存储模式一般而言,并行部分在GPU上运行,串行部分在CPU运行,CPU负责总体的程序流程,而GPU负责具体的计算任务,当GPU各个线程完成计算任务后,就将GPU计算结果拷贝到CPU端,完成一次计算任务。1、CUDA线程模型CUDA的线程模型从小往大来总结就是:Thread: 线程,并行的基本单位Thread Block:线程块,互相合作的线程块,线原创 2021-12-24 11:37:05 · 1380 阅读 · 0 评论