kaldi win10 vs2019 CPU和GPU下遇到的问题

本文详细介绍了在Windows 10上使用Visual Studio 2019配置Kaldi的过程,包括安装CUDA 10.2和cuDNN,设置环境变量,配置CMake,以及编译和测试Kaldi工程。同时,文章提到了可能遇到的问题和解决方法,如更新cuda_10.2.props等配置文件。
摘要由CSDN通过智能技术生成

1 需要组件

请按照顺序安装。

1.1 nvidia driver

nvidia win10 显卡型号和驱动下载地址直接双击exe安装
cuda_10.2.89_441.22_win10.exe下载地址直接双击exe安装
cudnn-10.2-windows10-x64-v7.6.5.32.zip下载地址
请将cudnn解压的库复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2下即可。
【配置PATH环境变量】

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\libnvvp
C:\Program Files\NVIDIA Corporation\NVSMI

在这里插入图片描述

1.2 vs2019社区版

vs2019_community__1503913078.1588313013.exe vs社区版
C++桌面版全选即可
在这里插入图片描述

1.3 cmake

cmake-3.17.3-win64-x64.zip,解压到C:\ProgramFiles下
【或者】不用下载了,vs2019内置了make,将其添加到PATH中即可
【配置PATH环境变量】

C:\ProgramFiles\cmake-3.7.0-win64-x64\bin
# 或者
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin

1.4 git和TortoiseGit

请安装Git_V2.5.1_64_bit_setup.1441791170.exe
TortoiseGit-1.8.15.0-64bit.msi
以及TortoiseGit-LanguagePack-1.8.15.0-64bit-zh_CN.msi中文语言包
【因为所有相关操作都在git bash上操作,windos命令行不支持mv cp等命令】
在这里插入图片描述

2 kaldi vs工程配置

2.1 kaldi

在这里可以看一下kaldi/windows文件夹的Reda

git clone https://github.com/kaldi-asr/kaldi.git C:\anjos\vs\kaldi-win

2.2 拷贝变量文件

在C:\anjos\vs\kaldi-win\windows下操作:
(1) 【复制 variables.props.dev 一份为 variables.props】
(2) 【复制 kaldiwin_openblas.props 一份为 kaldiwin.props】
(3) 【复制 cuda_7.0.props 为 cuda_10.2.props】
(4) 【复制portaudio.props 为 portaudio.props.dev】

2.3 支持cuda GPU

因为安装了cudav10.2,所以发现cuda7.0已经过时,同时发现C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations下是**CUDA 10.2.props**。因此做如下变更:
在C:\anjos\vs\kaldi-win\windows下操作:
(1) 【将 generate_solution.pl 文件中的所有cuda 7.0替换为cuda 10.2】
(2) 【将 generate_solution.pl 文件中的所有cuda_7.0替换为cuda_10.2】
(3) 【在 variables.props 的<PropertyGroup Label="UserMacros">中增加】

<CUDADIR>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2</CUDADIR>
<NVTOOLSDIR>C:\Program FIles\NVIDIA Corporation\NvToolsExt\</NVTOOLSDIR>

(4) 【在variables.props的<ItemGroup>中修改】

    <BuildMacro Include="NVTOOLSDIR">
      <Value>$(NVTOOLSDIR)</Value>
      <EnvironmentVariable>true</EnvironmentVariable>
    </BuildMacro>
    <BuildMacro Include="CUDADIR">
      <Value>$(CUDADIR)</Value>
      <EnvironmentVariable>true</EnvironmentVariable>
    </BuildMacro>

(5)【在 cuda_10.2.props <AdditionalIncludeDirectories> 子项下添加修改 cuda的include文件夹】

<AdditionalIncludeDirectories>$(CUDADIR)\include;$(NVTOOLSDIR)\include;$(CUBDIR);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

(6)【在 cuda_10.2.props <AdditionalLibraryDirectories> 子项下添加修改 cuda的lib文件夹】

<AdditionalLibraryDirectories>$(CUDADIR)\lib\x64;$(NVTOOLSDIR)\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

(7)【在 cuda_10.2.props <AdditionalDependencies> 子项下添加修改 cuda的依赖库】

<AdditionalDependencies>cublas.lib;cuda.lib;cudart.lib;nvToolsExt64_1.lib;%(AdditionalDependencies)</AdditionalDependencies>

最后样子:

  <ItemDefinitionGroup>
    <ClCompile>
      <AdditionalIncludeDirectories>$(CUDADIR)\include;$(NVTOOLSDIR)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <PreprocessorDefinitions>HAVE_CUDA;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <AdditionalLibraryDirectories>$(CUDADIR)\lib\x64;$(NVTOOLSDIR)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>cublas.lib;cusparse.lib;cudart.lib;curand.lib;cufft.lib;nvToolsExt64_1.lib;cusolver.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>

2.4 支持vs 2019

在C:\anjos\vs\kaldi-win\windows下操作,将generate_solution.pl文件中增加vs2019相关:

my %TOOLS=( default=> "14.1",
            vs2015 => "14.0",
            vs2017 => "14.1",
			vs2019 => "v14.2"
            );
my %FORMAT=( default=> "14.10",
             vs2015 =>  "14.00",
             vs2017 =>  "14.10",
			 vs2019 => "v14.20"
             );
my %TOOLSET=( default=> "v141",
              vs2015 => "v140",
              vs2017 => "v141",
			  vs2019 => "v142"
              );

2.5 openfst

这时候配置openfst发现直接用源码其实是不ok的,kaldi用的openfst版本是1.6.2,不能直接拉openfst GitHub最新版。这里openfst官网有提供一个版本:

wget http://www.openfst.org/twiki/pub/FST/FstDownload/openfst-1.6.2.tar.gz
wget https://pan.baidu.com/s/1o8SghqM
tar -xvf openfst-1.6.2.tar.gz
patch -b -p1 < openfst-1.6.2.patch

以vs201

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值