在ubuntu 18.04(GeForce GTX 760 4GB显存)编译MaskTextSpotter(CUDA-10.1)

如果需要运行 MaskTextSpotter, 最少需要 4GB 显存,低于这个容量,运行不起来。

安装最新版本的 cuda-10.1,低版本的编译会出问题:

配置独立环境

编译安装 Pytoch

编译安装 TorchVision

源代码编译

准备测试数据

执行测试的时候,如果出现如下错误信息:

那么问题出现的原因是maskrcnn_benchmark/data/datasets/icdar.py解析文件的时候,遇到了478,239,511,241,511,255,478,253,$5,000这样的数据,测试代码如下:

修正后的代码如下:

其他错误,可能是中途软件安装卸载造成的软件版本冲突,则直接删除环境,重新创建一个干净的环境重新构建。

参考链接


ubuntu 18.04 Android Studio运行模拟器时提示“/dev/kvm device: permission denied”

升级 ubuntu 系统, 从 16.04.5 升级到 18.04.1 ,接着又开始配置各种软件环境。

当配置好 Android 开发环境,准备创建一个模拟器并运行程序环境看是否OK时,问题出现了。

创建和运行时都提示:/dev/kvm device: permission denied 或者 /dev/kvm device: open failed,而且模拟器跑不起来。

执行命令查看:

需要安装 qemu-kvm 并把当前用户加入到 kvm 用户组即可:

然后运行模拟器,OK。

参考链接


pytorch 1.0.1在ubuntu 18.04(GeForce GTX 760)编译(CUDA-10.1)

目前 ubuntu 18.04 上使用 sudo  apt-get install nvidia-cuda-toolkit 安装的是 9.1.85 版本的 nvidia cuda , 尽管版本比较老,但是好在稳定性好,适用范围广。

当我们的项目需要使用最新版本的 pytorch 的时候,由于目前官方提供的编译好的 nvidia cuda 安装包并不兼容比较老的硬件。这个在实际环境中是比较麻烦的。

目前来说,比较稳妥的办法是直接从源代码编译。

如果显卡是几年前的显卡(GeForce GTX 760  Compute Capability = 3.0 / GeForce GT 720M  Lenveo T440 Compute Capability = 2.1),运行的时候会提示:

执行的时候会报错

硬件的计算能力查询 Recommended GPU for Developers

------------------------------------------------------------------------------------

安装最新版本的 cuda-10.1,低版本的编译会出问题:

安装 cuDNN 去官网下载对应版本的 cuDNN 一共是三个安装包,逐个安装即可。

GeForce GT 720M  Lenveo T440 Compute Capability = 2.1 不支持 cuDNN ,因此没必要安装 , 其实连最新版本的 CUDA-10.1 也不能安装,原因在于 NVIDIA GT 720M 的驱动只支持到 390 版本,而 CUDA-10.1 需 418 以上的版本才能支持,具体表现在于系统启动后没有加载显卡驱动,dmesg 可以查看到如下信息:

------------------------------------------------------------------------------------

依旧是推荐在 Anaconda 上建立独立的编译环境,然后执行编译:

如果出现如下错误:

则需要调整代码 aten/src/ATen/native/sparse/cuda/SparseCUDABlas.cu, 在其中的 cusparseGetErrorString 函数上增加 #if (!((CUSPARSE_VER_MAJOR >= 10) && (CUSPARSE_VER_MINOR >= 2)))

如下:

这样解决跟 CUDA-10.1自带函数的冲突问题。

具体参考: https://github.com/pytorch/pytorch/blob/master/aten/src/ATen/native/sparse/cuda/SparseCUDABlas.cu

源码安装的Pytorch,卸载需要执行:

Pytorch 代码下载非常缓慢,可以本站下载同步好的pytorch源代码

参考链接


Anaconda conda切换为国内源

  • Windows下

1 添加清华源

命令行中直接使用以下命令

2 添加中科大源

  • Linux下

将以上配置文件写在~/.condarc

切记

在修改完成之后,一定要重新启动一个新的Shell, 否则设置不生效。

参考链接


PyTorch运行时提示'ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead.'

在测试编译FOTS 的时候,出现如下错误:

最省事的情况是降级pytorch版本到0.4,强烈建议使用Anaconda创建独立的Python开发环境,然后在干净的环境中运行。

参考链接


ubuntu 18.04 "nvidia-340 导致 /usr/lib/x86_64-linux-gnu/libGL.so.1 转移到 /usr/lib/x86_64-linux-gnu/libGL.so.1.distrib"

解决方案如下:

参考链接


发现了 nvidia-340 导致 /usr/lib/i386-linux-gnu/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so.1.distrib...

ubuntu 18.04 systemd-udevd进程CPU占用特别高,CUDA Toolkit 10.1 Update 2安装之后出现

最近在T440笔记本的ubuntu 18.04系统上安装最新的CUDA Toolkit 10.1 Update 2之后,发现 systemd-udevd 进程CPU占用特别高,执行 sudo /lib/systemd/systemd-udevd -D ,会发现持续输出如下信息:

解决方法如下:

参考链接


macOS Catalina(10.15.1)无法安装使用CUDA了

macOS Catalina (10.15.1) 系统上,已经无法安装使用CUDA了。

貌似 CUDA 只能支持到 macOS High Sierra (10.13)

原因在于 Apple 严格控制着显卡驱动的权限,导致即时nvidia 希望更新显卡驱动,也需要等待 Apple 的许可。

但是貌似 Apple 对显卡驱动进行了深度的定制,而这个驱动定制团队貌似已经终止了。这就造成没办法进行驱动的更新,简直是悲剧啊!

参考链接中各种说法很多,但是一致的见解是只有降级系统这一条路了, Docker 也是不行的,宿主机不支持,也是搞不定。

不过,貌似安装双系统可以规避这个问题!(可惜只能是低版本系统安装高版本系统!高版本系统安装低版本的时候会被拒绝。)一个 macOS High Sierra (10.13),另一个安装更高的系统版本。参考: 在单独的 APFS 宗卷上安装 macOS

参考链接


Android Studio 3.5.2最小化接入weex 0.28.0实践

目前在尝试使用weex,但是在搭建基础的最小化项目的时候,官方文档描述的相当佛系,导致搭建出来的项目没办法正常运行。

下面我们探讨一下,使用Android Studio 3.5.2新建一个项目,实现最小化接入weex 0.28.0实践过程。

官方文档要求在项目的build.gradle 中增加如下内容:

但是实际上,由于weex 0.28.0的调整,以前版本自动引入的facebook提供的JS引擎js-android,现在被修改为需要手工引入,但是文档没有清晰的指出这个问题,导致运行的时候,会由于找不到libjsc.so而导致WXSDKEngine初始化失败。

官方提供了一个download_jsc.gradle的脚本解决这个问题(这个脚本的功能仅仅是下载libjsc.so ),需要在项目的 build.gradle 的头部增加这个脚本文件的引用:

如果下载不成功,也可从本站下载

完成后的build.gradle中完整内容如下:

接下来,就是具体的代码部分了,如下,需要自定义一个Application类,在Application的初始化部分初始化WXSDKEngine,代码如下:

接下来,就是具体的Activity内容展现代码部分了,代码如下:

需要注意的是WXSDKEngine是异步初始化的,导致在首次调用的时候,可能会因为没有正常初始化而出现异常,因此需要等待初始化完成。

具体的例子项目在这里下载 Weex

参考链接