spconv编译与安装
spconv编译与安装
- spconv介绍
- 编译
- 踩坑
这篇博客或许不能帮助你解决问题,只是希望能根据记录帮助理解。
spconv介绍
SPConv一种精度更高、速度更快的“即插即用”卷积。由重庆大学闫岩提出,GitHub地址如下地址。(@Janet_xueting感谢提出的问题,以后我会调研更加完备。)
编译
我的编译源码来自源码,这里的版本是1.0。务必确认自己版本的问题。接下来如下操作:
sudo apt-get install libboost-all-dev
python setup.py bdist_wheel
cd ./dist
pip install *.whl
一般来说正常步骤之后就可以happy的使用这个功能块,但是实际情况与之相违。
踩坑
- 保证自己的cmake>=3.13.2,并且已经添加到环境目录;
- gcc版本不能高于7之后,我最开始用的gcc9.2编译失败,切换会7.4之后成功,gcc升降可以参考,以及参考,实践还是建立软连接好使。
- 如果pytorch版本>=1.4.0并且遇到"nvcc fatal: unknown -Wall", 需要去torch所在目录,找到Caffe2Targets.cmake文件,注释掉“INTERFACE_COMPILE_OPTIONS”就行。操作如下:终端输入
locate Caffe2Targets.cmake
找到自己编译的torch环境目录下的Caffe2Targets.cmake文件,注释掉 “-Wall;-Wextra;-Wno-unused-parameter;-Wno-missing-field-initializers;-Wno-write-strings;-Wno-unknown-pragmas;-Wno-missing-braces;-fopenmp”,听说有两段,但是我只找到一段。 - 如果是"recipe for target ‘src/spconv/CMakeFiles/spconv.dir/reordering.cc.o’ failed",这个错误可能解决如下:
After almost an entire day of debugging I finally managed to build spconv.In order to successfully build spconv I had to modify setup.py in the following wayBefore:subprocess.check_call(['cmake', ext.sourcedir] + cmake_args, cwd=self.build_temp, env=env)
subprocess.check_call(['cmake', '--build', '.'] + build_args, cwd=self.build_temp)
Aftersubprocess.check_call(['cmake', ext.sourcedir] + cmake_args, cwd=self.build_temp, env=env)build_make_file = 'build/temp.linux-x86_64-3.7/src/spconv/CMakeFiles/spconv.dir/build.make'
link_file = 'build/temp.linux-x86_64-3.7/src/spconv/CMakeFiles/spconv.dir/link.txt'for file in [build_make_file, link_file]:with open(file) as f:newText = f.read().replace('/usr/local/cuda', env['CUDA_ROOT'])with open(file, "w") as f:f.write(newText)subprocess.check_call(['cmake', '--build', '.'] + build_args, cwd=self.build_temp)
- 20201105 pytorch1.4下编译成功
之前1.4一直遇到“spconv/src/spconv/all.cc:20:91: error: no matching function for call to ‘torch::jit::RegisterOperators::RegisterOperators(const char [28], )’
torch::jit::RegisterOperators(“spconv::get_indice_pairs_2d”, &spconv::getIndicePair<2>)
”
这个错误在我把anaconda3/envs/py1_4/lib/python3.6/site-packages/torch/share/cmake/Caffe2下的Caffe2Targets.cmake文件,注释掉“INTERFACE_COMPILE_OPTIONS”之后仍然遇到此错误,解决方法如下:
在 src/spconv/all.cc中, pytorch1.4包括及以后版本早就把torch::jit::RegisterOperators::RegisterOperators 替换为 torch::RegisterOperators::RegisterOperators , 所以移除 “jit“” namespace再次编译既可以成功。
成功界面:
我叫谢琛,深度学习探索者一枚!(有意咨询xiec177)
tensorflow/pytorch交流群请加QQ:548368797
更多咨询咨询请关注!
spconv编译与安装相关推荐
- 【Live555】liveMedia下载、配置、编译、安装、基本概念
[Live555]live555源码详解系列笔记 一.下载.编译.安装 1.下载 官网地址:http://www.live555.com/ 下载地址:http://www.live555.com/li ...
- Linux下boost库的编译、安装详解
1.下载源文件 去官网下载:http://www.boost.org/ 这里下载最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0/sou ...
- golang go get命令 一键获取代码、编译并安装
go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装.整个过程就像安装一个 App 一样简单. 这个命令可以动态获取远程代码包,目前支持的有 BitBucke ...
- linux内核单独安装,Linux内核编译与安装
平台:虚拟机Ubuntu10.04 内核版本:3.0.80 ---------------------------------------------------------------------- ...
- CentOS6.9下手动编译并安装Python3.7.0
CentOS6.9默认安装的python版本为2.6.6,若想安装python3以上版本,只能手工编译安装 下面介绍Python-3.7.0版本的手动编译并安装的步骤 1.下载Python-3.7.0 ...
- Apache 2,4版本 编译与安装 RedHat enterprises 6.2
只针对Apache 2,4版本 ,之前版本不存在这个问题 到http://httpd.apache.org/下载以源码方式安装,我下载的版本是Apache httpd 2.4.3 解压:[root@l ...
- linux怎么编译并安装busybox,linux下安装busybox
1.获取busybox源码并解压,这里使用天嵌提供的"busybox-1.16.0.tar.bz2" #tar xvf busybox-1.16..tar.bz2 -C / 解压的 ...
- SNMP功能开发简介 一 net-snmp编译与安装
部门产品还没有snmp功能,应客户需求,最近开始开发snmp功能.snmp即简单网络管理协议,管理很简单,但实际开发还是有点工作量,协议有三个版本,分为1,2c,3.相关的RFC文档也比较多,从零开始 ...
- 【ubuntu+opencv3】ubuntu16.04+qt5+opencv3.2.0编译与安装
在网上找了很多资料,终于把opencv3.2.0在ubuntu16.04下安装成功了,由于使用qt作为开发工具,这里也顺便介绍下qt的安装与配置. 1.依赖库的安装 执行如下命令: sudo apt- ...
- Centos中Redis的下载编译与安装(超详细)
场景 NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充.随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数 ...
最新文章
- Jfinal集成Spring插件
- 天通苑海鲜餐馆数据调查,很难想象消费越贵越受欢迎
- SpringBoot高级-缓存-RedisTemplate序列化机制
- SRC漏洞挖掘之偏门资产收集篇
- Bootstrap-模态框 modal.js
- Java是先难后易吗_在解决问题的时候,是先难后易还是先易后难?
- LeetCode 425. 单词方块(Trie树+DFS)
- OOP in PHP
- Jsrender初体验
- 三千万海外用户的天才程序员之死
- Scala中I/O类使用详细解析
- HTTP详解(1)-工作原理
- [A3C]:算法原理详解
- python处理wrf气象数据_气象编程 | Python3之WRF的投影转换
- Python-requests-12306-登陆
- wordpress cookies 遇到预料外错误 阿里云虚拟机
- 中台战略-第四章、企业中台5大成功要素
- SaltStack实战之远程执行-Returners
- php masonry,jQuery Masonry瀑布流布局详解
- 最流行的开源飞控项目ArduPilot Mega(APM)介绍及发展历史