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编译与安装相关推荐

  1. 【Live555】liveMedia下载、配置、编译、安装、基本概念

    [Live555]live555源码详解系列笔记 一.下载.编译.安装 1.下载 官网地址:http://www.live555.com/ 下载地址:http://www.live555.com/li ...

  2. Linux下boost库的编译、安装详解

    1.下载源文件 去官网下载:http://www.boost.org/ 这里下载最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0/sou ...

  3. golang go get命令 一键获取代码、编译并安装

    go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装.整个过程就像安装一个 App 一样简单. 这个命令可以动态获取远程代码包,目前支持的有 BitBucke ...

  4. linux内核单独安装,Linux内核编译与安装

    平台:虚拟机Ubuntu10.04 内核版本:3.0.80 ---------------------------------------------------------------------- ...

  5. CentOS6.9下手动编译并安装Python3.7.0

    CentOS6.9默认安装的python版本为2.6.6,若想安装python3以上版本,只能手工编译安装 下面介绍Python-3.7.0版本的手动编译并安装的步骤 1.下载Python-3.7.0 ...

  6. Apache 2,4版本 编译与安装 RedHat enterprises 6.2

    只针对Apache 2,4版本 ,之前版本不存在这个问题 到http://httpd.apache.org/下载以源码方式安装,我下载的版本是Apache httpd 2.4.3 解压:[root@l ...

  7. linux怎么编译并安装busybox,linux下安装busybox

    1.获取busybox源码并解压,这里使用天嵌提供的"busybox-1.16.0.tar.bz2" #tar xvf busybox-1.16..tar.bz2 -C / 解压的 ...

  8. SNMP功能开发简介 一 net-snmp编译与安装

    部门产品还没有snmp功能,应客户需求,最近开始开发snmp功能.snmp即简单网络管理协议,管理很简单,但实际开发还是有点工作量,协议有三个版本,分为1,2c,3.相关的RFC文档也比较多,从零开始 ...

  9. 【ubuntu+opencv3】ubuntu16.04+qt5+opencv3.2.0编译与安装

    在网上找了很多资料,终于把opencv3.2.0在ubuntu16.04下安装成功了,由于使用qt作为开发工具,这里也顺便介绍下qt的安装与配置. 1.依赖库的安装 执行如下命令: sudo apt- ...

  10. Centos中Redis的下载编译与安装(超详细)

    场景 NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充.随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数 ...

最新文章

  1. Jfinal集成Spring插件
  2. 天通苑海鲜餐馆数据调查,很难想象消费越贵越受欢迎
  3. SpringBoot高级-缓存-RedisTemplate序列化机制
  4. SRC漏洞挖掘之偏门资产收集篇
  5. Bootstrap-模态框 modal.js
  6. Java是先难后易吗_在解决问题的时候,是先难后易还是先易后难?
  7. LeetCode 425. 单词方块(Trie树+DFS)
  8. OOP in PHP
  9. Jsrender初体验
  10. 三千万海外用户的天才程序员之死
  11. Scala中I/O类使用详细解析
  12. HTTP详解(1)-工作原理
  13. [A3C]:算法原理详解
  14. python处理wrf气象数据_气象编程 | Python3之WRF的投影转换
  15. Python-requests-12306-登陆
  16. wordpress cookies 遇到预料外错误 阿里云虚拟机
  17. 中台战略-第四章、企业中台5大成功要素
  18. SaltStack实战之远程执行-Returners
  19. php masonry,jQuery Masonry瀑布流布局详解
  20. 最流行的开源飞控项目ArduPilot Mega(APM)介绍及发展历史

热门文章

  1. Opencv之人脸识别
  2. 本特利电源模块3500/15-05-05-00
  3. 揭开银行U盾的秘密---签发CA证书:单向认证+双向认证(含java代码)
  4. CImage不失真缩放显示图片
  5. 【每周荐书系列】——《认知盈余》
  6. 机械电子工程专业和计算机科学,机械电子工程专业属于什么类别
  7. Python-openvn的初步理解(1)
  8. 科来网络分析系统网络故障分析方法
  9. WAP 非443端口的ADFS如何配置Web应用程序代理
  10. php加skplayer,织梦dedecms怎么整合添加ckplayer播放器支持flv,mp4等播放功能