Halide(win10vs2019环境搭建)小试牛刀
什么是Halide
Halide,直译为"卤化物"的意思,那么它究竟用来干什么呢?
举个栗子:
对于简单的for循环二层嵌套,
//example1
for(int i=0;i<10;i++)
{for(int j=0;j<100;j++){cout<<i+j<<endl;}
}
和
//example2
for(int j=0;j<100;j++)
{for(int i=0;i<10;i++){cout<<i+j<<endl;}
}
他们实现的功能是类似的,但是哪个耗时比较长呢?答案是example2耗时长.具体原因见:两层嵌套for循环的效率比较.诸如此类的优化很多很多,总的来说Halide就是实现这类算法底层加速.
话不多说,直接上干货
本文主要实现Halide源码中lesson_01_basics的实现,首先下载Halide压缩包,这里选择
Halide-10.0.0-x86-32-windows-db901f7f7084025abc3cbb9d17b0f2d3f1745900.zip
下载下来后,需要windows上有vs2017以上的版本,这里使用的是Visual Studio2019社区版(免费的).
好啦,拥有Halide压缩包及vs2019之后,就可以进行环境配置了.
第一步,将Halide-10.0.0-x86-32-windows-db901f7f7084025abc3cbb9d17b0f2d3f1745900.zip解压缩,得到
第二步,添加环境变量E:\Halide-10.0.0-x86-32-windows\bin\Release到Path
第三步,打开VS2019,创建一个C++空项目,将Halide-10.0.0-x86-32-windows\share\Halide\tutorial中的lesson_01_basics.cpp复制进创建的项目中,将Halide-10.0.0-x86-32-windows\include中的Halide.h复制进项目中.
第四步,将解决方案配置改为Release,右键解决方案,在属性-连接器-常规-附加库目录中,增加E:\Halide-10.0.0-x86-32-windows\lib\Release,在属性-连接器-输入-附加依赖项中,手动输入Halide.lib.
第五步,大功告成!点击F5,出现Success!界面!
PS:
环境变量:环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
摘自百度百科.
lib文件:.lib是一种文件名后缀,代表的是静态数据连接库,在windows操作系统中起到链接程序和函数(或子过程)的作用.
Debug和Release的区别:
Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。Debug模式下生成两个文件,除了.exe或.dll文件外,还有一个.pdb文件,该文件记录了代码中断点等调试信息
Release:发布版本,不对源代码进行调试,编译时对应用程序的速度进行优化,使得程序在代码大小和运行速度上都是最优的。(调试信息可在单独的PDB文件中生成)。Release模式下生成一个文件.exe或.dll文件
PPPS:
Halide.lib如果使用Debug模式就会报错,不懂为什么orz…
Halide(win10vs2019环境搭建)小试牛刀相关推荐
- 移动端自动化测试(一)appium环境搭建
自动化测试有主要有两个分类,接口自动化和ui自动化,ui自动化呢又分移动端的和web端的,当然还有c/s架构的,这种桌面程序应用的自动化,使用QTP,只不过现在没人做了. web自动化呢,现在基本上都 ...
- 乐鑫Esp32学习之旅① 爬坑学习新旅程,虚拟机Linux环境搭建esp32环境,打印 “Hellow World”。(2021年6月已更新)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 系列一:ESP32系列模组基础学习系列笔记 1. 爬坑学习新旅程,虚 ...
- Lichee_RV学习系列---认识Lichee Rv Dock、环境搭建和编译第一个程序
Lichee Rv Dock学习系列文章目录 文章目录 Lichee Rv Dock学习系列文章目录 前言 一.认识Lichee RV 1.D1-H 芯片 2.Lichee RV开发板 3.系统镜像 ...
- pythonev3 课程环境搭建
一:课程目标 学生自主完成系统重装 学生自主完成镜像刻录 自主完成EV3环境搭建 二:搭建步骤 准备工具 win10/ubuntu/mac os sd卡(8GB+)+读卡器 电脑配置 下载VSCode ...
- 乐鑫Esp32-S2学习之旅① 入门 ESP32-S2 环境搭建 ,分享如何直连苹果智能家居 HomeKit 平台,轻松语音 Siri 控制!
本系列博客学习由非乐鑫官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 基于乐鑫ESP32 芯片模组 C SDK二次开发的技 ...
- 「Python入门」python环境搭建及VScode使用python运行方式
活动地址:CSDN21天学习挑战赛 文章目录 前言 一. python环境搭建 1.1 python下载安装 1.2 python安装 1.3 python环境变量配置 1.4 python版 ...
- Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建
Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建 一.Anaconda 创建 python3.7环境 1.进入 C:\Users\用户名 目录下,找到 ...
- Windows10+Anaconda3+Pycharm环境搭建
Windows10+Anaconda3+Pycharm环境搭建 一.安装Anaconda3 1.进入 anconda官网,下载Anaconda3 2.安装,选项默认继续安装(可以自行更改安装位置),等 ...
- SpringCloud Alibaba微服务实战(一) - 基础环境搭建
说在前面 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来 ...
最新文章
- jieba.lcut方法
- 数据库报错: SQLCODE: -418, SQLSTATE: 42610, SQLERRMC: null
- POPUP_GET_VALUES_DB_CHECKED’
- Uva 11400,照明系统设计
- Docker实战部署JavaWeb项目-基于SpringBoot
- 整合Swagger接口文档
- 九度oj题目1341:艾薇儿的演唱会
- Python XML解析器– ElementTree
- Netty in action—Netty组件和设计
- 洛谷 [P1890] gcd区间
- fast-DTW算法
- BI系统的分布式部署原理和技术实现
- 使用Java实现一元二次方程求根计算器
- varchar(1)的怪异现象
- java接收端怎么收不到_java后端为什么接受不到前端发送的数据
- SigFox Vs. LoRa:技术和商业模式之间的比较
- 华东师范大学 计算机 博士 毕业论文,华东师大:1/4博士生完不成论文难毕业
- 搭建私有云盘可能用到的软件
- 设置Mac的输入法切换快捷键
- linux route 刷新_linux route命令反应很慢是什么原因?