NVIDIA开源NeMo,CUDA,pytorch安装使用过程踩坑总结

说明

Nemo cpu版本直接看文章最后一部分(linux版本的),windows下安装的话要先安装CUDA来支持GPU,在安装pytorch,在安装nemo,但是还是出问题了,不建议windows,建议使用linux、mac。

NeMo是由NVIDIA ,这是一种会话式人工智能的神经模块和模型。会话式人工智能正在改变我们与计算机的交互方式。它包括三个令人兴奋的人工智能研究领域:自动语言识别(Automatic Speech Recognition,ASR)、自然语言处理(Natural Language Processing,NLP)和语言合成(或文本到语音,Text-to-Speech,TTS)。NVIDIA 的目标是通过让研究人员和从业人员更容易地访问、重用和建立这些领域的最新构建模块和预训练模型,使这些领域的进展能够实现民主化并得到加速。

CUDA安装步骤:

  1. miconda或者anconda环境(我使用的是miconda)
  2. 查看与自己电脑驱动程序版本(我的419.71)匹配的CUDAToolkit版本(CUDA10.0)


对应版本信息查询:对应版本信息查询https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#abstract

在这里插入图片描述
然后到cuda官网下载对应版本,我的版本10.0
CUDA10.0版本下载:CUDA官网
https://developer.nvidia.com/cuda-10.1-download-archive-update1
在这里插入图片描述
3. 下载完成后安装(自定义安装)

在这里插入图片描述
上面图片是别人安装过程。我安装的时候是全部选中安装了,因为中间出问题了。参考网上还有别的说要选中Driver components. 最好都选中吧

安装完成后配置环境变量(前两个会默认已经添加了的)

CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
CUDA_PATH_V10_1 = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64

在这里插入图片描述
最后测试是否安装成功:
cmd cd到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite目录下,执行
deviceQuery.exe 执行 bandwidthTest.exe

在这里插入图片描述
fail的代表失败,就在这里踩坑了。
报错了:

 CUDA driver version is insufficient for CUDA runtime version
Result = FAIL

错误原因是显卡驱动的版本和你安装的CUDA版本不匹配,CUDA版本对显卡驱动版本有要求

解决办法:查看一下自己的显卡驱动版本 2: 到这里下载一个 对应版本的驱动
下载地址 驱动下载
https://www.nvidia.cn/Download/index.aspx?lang=cn

在这里插入图片描述
下载自己电脑对应显卡的最新驱动,然后安装更新。安装步骤自定义全选中,或者默认精简安装都可以。
4. 安装成功后再来测试 (deviceQuery.exe pass代表成功bandwidthTest.exe pass代表成功)
在这里插入图片描述

安装pytorch

安装步骤参考pytorch官网
pytorch
然后执行对应gup版本的pytorch版本

# CUDA 10.1
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1

在这里插入图片描述
测试安装成功
在这里插入图片描述

NeMo安装

NeMo是NVIDIA最近开源的一种会话式人工智能的神经模块和模型。

会话式人工智能正在改变我们与计算机的交互方式。它包括三个令人兴奋的人工智能研究领域:自动语言识别(Automatic Speech Recognition,ASR)、自然语言处理(Natural Language Processing,NLP)和语言合成(或文本到语音,Text-to-Speech,TTS)。NVIDIA 的目标是通过让研究人员和从业人员更容易地访问、重用和建立这些领域的最新构建模块和预训练模型,使这些领域的进展能够实现民主化并得到加速。

安装方式参考nemo的githubgithub:NeMo

  1. 首先想着是在windows安装nemo,开发会方便些。没想到过程是无比艰难,最后还没安装成功。
    说一下安装过程:在虚拟环境中pip install nemo nemo_toolkit[all]安装失败后。我使用了网上推荐的conda环境,网上推荐的两种方式
    腾讯云腾讯云
参考腾讯云 (GPU 的 PyTorch 1.6 版或更高版本,NeMo 可以简单地通过 PIP 安装)
pip install nemo_toolkit[all]==1.0.0b1
采用github安装方式
pip install nemo_toolkit['all']  windows要去掉引号 pip install nemo_toolkit[all] 

安装过程中还是报错,一会是少了C++文件,一会是OSError: [WinError 126] 找不到指定的模块。 Error loading “D:\Anaconda\envs\tensorflow\lib\site-packages\torch\lib\asmjit.dll” or one of its dependencies.
还有其他错误,每次报错解决后会有不同的错误。
最后自创安装方式

pip install nemo

虽然是安装成功了,但是运行代码时报错,还是关于nemo关于某些文件无法加载和缺少某些文件的错误。
最终放弃了windows使用了linux
2. linux安装nemo
参考githubnemo_github
为了方便,而且熟练docker的话建议使用docker容器下载(docker安装不在过多介绍,很简单)

docker run --gpus all -it --rm -v <nemo_github_folder>:/NeMo --shm-size=8g \
-p 8888:8888 -p 6006:6006 --ulimit memlock=-1 --ulimit \
stack=67108864 --device=/dev/snd nvcr.io/nvidia/pytorch:21.05-py3

介绍下python环境下(基本python环境就可以,当然conda更好)安装pip 安装 步骤如下
3. linux下pip安装nemo安装注意
先执行

apt-get update && apt-get install -y libsndfile1 ffmpeg

然后安装

pip install Cython

git推荐直接使用下面命令的,但是直接执行中间会报错

pip install nemo_toolkit['all']

因为中间会遇到安装pyamg时报错。然后我看pyamg的git仓库得知:我们先要安装对应版本及以上的numpy和scipy,(pyamg一定要单独安装,不然bulid时会报错)
还有安装ipykernel的时候importlib-metadata版本不对,安装typer时click版本不对的问题(不过ipykernel, typer报错问题不大,会自动安装别的版本)。
在这里插入图片描述
在这里插入图片描述
解决方案 安装上面图片中对应版本的包。

pip install Cython numpy scipy -i https://pypi.doubanio.com/simple/
pip install pyamg -i https://pypi.doubanio.com/simple/

最后在执行 (linux下all要加引号)
安装比较慢可使用豆瓣源

pip install nemo_toolkit['all']  -i https://pypi.doubanio.com/simple/

最后顺利安装好nemo, 然后我们只要进行微调,就能体验nemo的语音识别,语音合成,自然语言处理等模型了。
只需修改几行代码,就可以将其转换为一个脚本,用于训练基于 BERT 的问答模型。
在这里插入图片描述
做一个简单的翻译来测试nemo
加载模型
在这里插入图片描述
翻译结果
在这里插入图片描述

总结:当然可以在安装jupyter-notebook,设置外部访问配置,这样我们就可以用别的机子(比如你是windows下的话)来远程notebook开发是非常方便的。
感谢: 再次感谢英伟达官方开源的nemo,以及NLP公开课老师的分享
nvidia ngc nvidia预训练模型 https://ngc.nvidia.com/catalog/models

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
cuda检测工具 devicequery.zip(不含源代码,源代码在cuda sdk 8.0里) deviceQuery.exe Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "GeForce GTX 760" CUDA Driver Version / Runtime Version 9.2 / 8.0 CUDA Capability Major/Minor version number: 3.0 Total amount of global memory: 2048 MBytes (2147483648 bytes) ( 6) Multiprocessors, (192) CUDA Cores/MP: 1152 CUDA Cores GPU Max Clock rate: 1137 MHz (1.14 GHz) Memory Clock rate: 3004 Mhz Memory Bus Width: 256-bit L2 Cache Size: 524288 bytes Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096) Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 1 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled CUDA Device Driver Mode (TCC or WDDM): WDDM (Windows Display Driver Model)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BRYTLEVSON

打赏的都是天使,创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值