# NiuTrans.Tensor ## Windows系统通过Visual Studio配置NiuTrans.Tensor项目 ### 注意事项 * 我们仅仅测试了VS2015和CUDA9.0之后的版本,对于之前的版本并不清楚是否存在问题。 * VS2015版本可以直接使用,使用较新版本的VS(如VS2017)时,需要**安装组件“适用于桌面的 VC++ 2015.3 v14.00 (v140) 工具集”**。 * 建议先安装Visual Studio再安装CUDA。安装CUDA时,建议不要勾选Visual Studio Integration,有时候可能会出错。CUDA安装完成后,解压CUDA安装文件(exe文件可以解压),在CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions路径下有四个文件,拷贝到下述路径中。 * VS2015 > C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\BuildCustomizations * VS2017(以下两个路径分别对应v140工具集和VS默认工具集的路径) > C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\BuildCustomizations > C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\BuildCustomizations ### 新建项目 * 新建一个VC++空项目。 * 将菜单栏中的**解决方案平台**设置为×64(默认是X86)。 * 在**菜单栏->项目->属性**中,将平台设置为X64。 * 将源代码(source文件夹)拷贝到项目的根目录,然后选择**菜单栏->项目->显示所有文件**,解决方案中即可以看到source文件夹,右键点击source,选择包含在项目中,即可将所有的*.h和*.cpp加入到本项目中。 ### CUDA配置(无GPU设备可以跳过此步骤) 在VS项目中使用CUDA,需要设置项目的相关属性。 以下配置选项在 **菜单栏->项目 -> 属性** 中可以找到。 * **C/C++->预处理器->预处理器定义** 中,添加 > USE_CUDA; * **VC++目录->包含目录** 中加入 > $(CUDA_PATH)\include * **VC++目录->库目录** 中加入 > $(CUDA_PATH)\lib\Win32 * **链接器->输入->附加依赖项**中加入以下库 > cuda.lib;cudadevrt.lib;cudart.lib;cudart_static.lib;nvcuvid.lib;OpenCL.lib;cublas.lib;curand.lib; * 上述配置完成后,在**菜单栏->项目->生成自定义**中,勾选CUDA*(根据自己安装的CUDA版本自行选择)。 * 在所有的*.cu和*.cuh文件上右键,包含在项目中。 ### 其他配置 注:以下选项也是 **菜单栏-项目 -> 属性** 中可以找到。 * **常规->平台工具集**,设置为Visual Studio 2015(v140)。 * **C/C++->常规->SDL检查**,设为否。 * **C/C++->预处理器->预处理器定义** 中,添加 > WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS_CONSOLE; * **C/C++->预编译头->预编译头**,设置为不使用预编译头。 * **链接器->系统->子系统**,设置为控制台。 * **常规->字符集**,使用Unicode字符集。 * **调试->命令参数**,设置可执行文件所需要的参数(初始可以设置为-test,用来执行测试用例)。