Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
N
NiuTrans.Tensor
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
8
Issues
8
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
NiuTrans
NiuTrans.Tensor
Commits
63eee374
Commit
63eee374
authored
Dec 26, 2020
by
liyinqiao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Support CUDA 11 and fix some CMake bugs.
parent
64973687
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
42 行增加
和
47 行删除
+42
-47
CMakeLists.txt
+35
-40
README.md
+4
-4
doc/manual.md
+3
-3
没有找到文件。
CMakeLists.txt
查看文件 @
63eee374
...
...
@@ -97,35 +97,47 @@ if(USE_CUDA)
add_definitions
(
-DHALF_PRECISION
)
endif
()
find_package
(
CUDA REQUIRED
)
if
(
WIN32
)
SET
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
/wd4819"
)
set
(
CMAKE_CUDA_FLAGS
${
CMAKE_CUDA_FLAGS
}
"-maxrregcount=0 -m64 --disable-warnings -use_fast_math -DUSE_CUDA"
)
if
(
USE_HALF_PRECISION
)
set
(
CMAKE_CUDA_FLAGS
${
CMAKE_CUDA_FLAGS
}
"-DHALF_PRECISION"
)
set
(
CMAKE_CUDA_FLAGS
${
CMAKE_CUDA_FLAGS
}
-arch=sm_60
-gencode=arch=compute_60,code=sm_60
-gencode=arch=compute_61,code=sm_61
-gencode=arch=compute_62,code=sm_62
-gencode=arch=compute_70,code=sm_70
-gencode=arch=compute_70,code=compute_70
)
else
()
set
(
CMAKE_CUDA_FLAGS
${
CMAKE_CUDA_FLAGS
}
-arch=sm_30
-gencode=arch=compute_30,code=sm_30
-gencode=arch=compute_50,code=sm_50
-gencode=arch=compute_52,code=sm_52
if
(
GPU_ARCH STREQUAL K
)
# Kepler cards (CUDA 5 until CUDA 10
)
set
(
ARCH_FLAGS -arch=compute_30 -code=compute_30,sm_30,sm_35,sm_37
)
elseif
(
GPU_ARCH STREQUAL M
)
# Maxwell cards (CUDA 6 until CUDA 11
)
set
(
ARCH_FLAGS -arch=compute_50 -code=compute_50,sm_50,sm_52,sm_53
)
elseif
(
GPU_ARCH STREQUAL P
)
# Pascal (CUDA 8 and later
)
set
(
ARCH_FLAGS -arch=compute_60 -code=compute_60,sm_60,sm_61,sm_62
)
elseif
(
GPU_ARCH STREQUAL V
)
# Volta (CUDA 9 and later)
set
(
ARCH_FLAGS -arch=compute_70 -code=compute_70,sm_70,sm_72
)
elseif
(
GPU_ARCH STREQUAL T
)
# Turing (CUDA 10 and later)
set
(
ARCH_FLAGS -arch=compute_75 -code=sm_75
)
elseif
(
GPU_ARCH STREQUAL A
)
# Ampere (CUDA 11 and later)
set
(
ARCH_FLAGS -arch=compute_80 -code=sm_80
)
endif
()
if
(
USE_HALF_PRECISION
)
if
(
NOT DEFINED GPU_ARCH
)
set
(
ARCH_FLAGS -arch=sm_60
-gencode=arch=compute_60,code=sm_60
-gencode=arch=compute_61,code=sm_61
-gencode=arch=compute_62,code=sm_62
-gencode=arch=compute_70,code=sm_70
-gencode=arch=compute_72,code=sm_72
-gencode=arch=compute_70,code=compute_70
)
elseif
(
${
GPU_ARCH
}
STREQUAL K OR
${
GPU_ARCH
}
STREQUAL M
)
message
(
FATAL_ERROR
"your GPU cannot use the function half precision"
)
endif
()
endif
()
if
(
WIN32
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
/wd4819"
)
set
(
CUDA_NVCC_FLAGS
${
CUDA_NVCC_FLAGS
}
"-maxrregcount=0 -m64 -Wno-deprecated-gpu-targets -use_fast_math"
)
set
(
CUDA_NVCC_FLAGS
${
CUDA_NVCC_FLAGS
}
${
ARCH_FLAGS
}
)
set
(
CMAKE_POLICY_DEFAULT_CMP0028 NEW
)
link_directories
(
"
${
CUDA_ROOT
}
/lib/x64"
)
include_directories
(
"
${
CUDA_ROOT
}
/include"
)
set
(
CUDA_LIB_DIR
"
${
CUDA_ROOT
}
/lib/x64/"
)
set
(
CUDA_LIB_PATH
${
CUDA_LIB_PATH
}
"
${
CUDA_LIB_DIR
}
cublas.lib"
)
if
(
CUDA_VERSION_MAJOR EQUAL 11
)
set
(
CUDA_LIB_PATH
${
CUDA_LIB_PATH
}
"
${
CUDA_LIB_DIR
}
cublasLt.lib"
)
endif
()
set
(
CUDA_LIB_PATH
${
CUDA_LIB_PATH
}
"
${
CUDA_LIB_DIR
}
npps.lib"
)
set
(
CUDA_LIB_PATH
${
CUDA_LIB_PATH
}
"
${
CUDA_LIB_DIR
}
nppc.lib"
)
set
(
CUDA_LIB_PATH
${
CUDA_LIB_PATH
}
"
${
CUDA_LIB_DIR
}
cudadevrt.lib"
)
...
...
@@ -133,31 +145,14 @@ if(USE_CUDA)
else
()
set
(
CMAKE_CXX_FLAGS
"-fPIC -msse4.2 -w -march=native -Wno-enum-compare -Wno-sign-compare -Wno-format -Wno-dev -O3 -DNDEBUG -rdynamic"
)
set
(
CUDA_NVCC_FLAGS
"-Xcompiler -fPIC -maxrregcount=0 --disable-warnings -use_fast_math -DUSE_CUDA -Wno-deprecated-gpu-targets -std=c++11"
)
if
(
USE_HALF_PRECISION
)
set
(
CUDA_NVCC_FLAGS
${
CUDA_NVCC_FLAGS
}
"-DHALF_PRECISION"
)
set
(
CUDA_NVCC_FLAGS
${
CUDA_NVCC_FLAGS
}
-arch=sm_60
-gencode=arch=compute_60,code=sm_60
-gencode=arch=compute_61,code=sm_61
-gencode=arch=compute_62,code=sm_62
-gencode=arch=compute_70,code=sm_70
-gencode=arch=compute_70,code=compute_70
)
else
()
set
(
CUDA_NVCC_FLAGS
${
CUDA_NVCC_FLAGS
}
-arch=sm_30
-gencode=arch=compute_30,code=sm_30
-gencode=arch=compute_50,code=sm_50
-gencode=arch=compute_52,code=sm_52
-gencode=arch=compute_60,code=sm_60
-gencode=arch=compute_61,code=sm_61
-gencode=arch=compute_62,code=sm_62
-gencode=arch=compute_70,code=sm_70
-gencode=arch=compute_70,code=compute_70
)
endif
()
link_directories
(
${
CUDA_ROOT
}
/lib64
)
include_directories
(
${
CUDA_ROOT
}
/include
)
set
(
CUDA_NVCC_FLAGS
${
CUDA_NVCC_FLAGS
}
${
ARCH_FLAGS
}
)
link_directories
(
"
${
CUDA_ROOT
}
/lib64"
)
include_directories
(
"
${
CUDA_ROOT
}
/include"
)
set
(
CUDA_LIB_DIR
"
${
CUDA_ROOT
}
/lib64/"
)
set
(
CUDA_LIB_PATH
${
CUDA_LIB_PATH
}
"
${
CUDA_LIB_DIR
}
libcublas_static.a"
)
if
(
CUDA_VERSION_MAJOR EQUAL 11
)
set
(
CUDA_LIB_PATH
${
CUDA_LIB_PATH
}
"
${
CUDA_LIB_DIR
}
libcublasLt_static.a"
)
endif
()
set
(
CUDA_LIB_PATH
${
CUDA_LIB_PATH
}
"
${
CUDA_LIB_DIR
}
libculibos.a"
)
set
(
CUDA_LIB_PATH
${
CUDA_LIB_PATH
}
"
${
CUDA_LIB_DIR
}
libnpps_static.a"
)
set
(
CUDA_LIB_PATH
${
CUDA_LIB_PATH
}
"
${
CUDA_LIB_DIR
}
libnppc_static.a"
)
...
...
README.md
查看文件 @
63eee374
...
...
@@ -46,7 +46,7 @@ NiuTensor蟾・蜈キ蛹庄莉・蝨ィWindows縲´inux莉・蜿確acOS邇ッ蠅ク玖ソ幄。悟ョ芽」シ梧髪
-
执行CMake命令对Visual Studio项目进行生成(如果 visual studio 版本低于 2019,则在使用下列命令的时候需额外加上
`-A x64`
的CMake参数),如计划生成动态链接库,则仅需在命令中额外加上
`-DGEN_DLL=ON`
的CMake参数即可,否则默认生成可执行程序。
-
如项目计划启用MKL数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_MKL=ON`
参数,并通过
`-DINTEL_ROOT='/intel/root/path'`
指定MKL库(Intel工具包)的安装路径。如
`cmake -DUSE_MKL=ON -DINTEL_ROOT='C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020.2.254/windows' ..`
。
-
如项目计划启用OpenBLAS数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_OPENBLAS=ON`
参数,并通过
`-DOPENBLAS_ROOT='/openblas/root/path'`
指定OpenBLAS库的安装路径。如
`cmake -DUSE_OPENBLAS=ON -DOPENBLAS_ROOT='C:/Program Files/OpenBLAS' ..`
。
-
如项目计划启用CUDA数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_CUDA=ON`
参数,并通过
`-DCUDA_ROOT='/cuda/root/path'`
指定CUDA库的安装路径。如
`cmake -DUSE_CUDA=ON -DCUDA
_ROOT='C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.2' ..`
。如需在GPU设备上使用半精度浮点数进行运算,需在
启用
`-DUSE_CUDA=ON`
参数的同时启用
`-USE_HALF_PRECISION=ON`
参数(需要注意的是半精度但需要注意的是,半精度操作仅在使用Pascal及更新架构的NVIDIA GPU中提供支持,该项可参考
[
NVIDIA GPU设备信息
](
https://developer.nvidia.com/cuda-gpus
)
进行查询)。
-
如项目计划启用CUDA数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_CUDA=ON`
参数,并通过
`-DCUDA_ROOT='/cuda/root/path'`
指定CUDA库的安装路径,通过-DGPU_ARCH=ARCH指定所在GPU设备的架
构(K:Kepler架构;M:Maxwell架构;P:Pascal架构;V:Volta架构;T:Turing架构;A:Ampere架构)。如
`cmake -DUSE_CUDA=ON -DCUDA_ROOT='C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.2' -DGPU_ARCH=P ..`
。如需在GPU设备上使用半精度浮点数进行运算,需在启用
`-D
USE_CUDA=ON`
参数的同时启用
`-USE_HALF_PRECISION=ON`
参数(需要注意的是半精度但需要注意的是,半精度操作仅在使用Pascal及更新架构的NVIDIA GPU中提供支持,该项可参考
[
NVIDIA GPU设备信息
](
https://developer.nvidia.com/cuda-gpus
)
进行查询)。
-
执行成功将显示
`Build files have been written to:...`
。
-
打开build目录中的NiuTensor.sln文件即可通过Visual Studio打开NiuTensor项目。
-
打开后在解决方案管理器中选中NiuTensor,右键将其设为启动项目即可开始使用。
...
...
@@ -67,7 +67,7 @@ NiuTensor蟾・蜈キ蛹庄莉・蝨ィWindows縲´inux莉・蜿確acOS邇ッ蠅ク玖ソ幄。悟ョ芽」シ梧髪
-
打开CLion首选项,点击“构建,执行,部署”选项卡中的CMake,在“CMake选项”中进行设置,设置完成后CLion将自动使用CMake对项目进行构建,如计划生成动态链接库,则仅需在在“CMake选项”中额外加上
`-DGEN_DLL=ON`
的CMake参数即可,否则默认生成可执行程序。
-
如项目计划启用MKL数学运算库(需用户自行安装),则仅需在“CMake选项”中填入
`-DUSE_MKL=ON`
,并通过
`-DINTEL_ROOT='/intel/root/path'`
指定MKL库(Intel工具包)的安装路径。如
`-DUSE_MKL=ON -DINTEL_ROOT='/opt/intel/compilers_and_libraries_2020.2.254/linux'`
。
-
如项目计划启用OpenBLAS数学运算库(需用户自行安装),则仅需在“CMake选项”中填入
`-DUSE_OPENBLAS=ON`
,并通过
`-DOPENBLAS_ROOT='/openblas/root/path'`
指定OpenBLAS库的安装路径。如
`-DUSE_OPENBLAS=ON -DOPENBLAS_ROOT='/opt/OpenBLAS'`
。
-
如项目计划启用CUDA数学运算库(需用户自行安装),则仅需在“CMake选项”中填入
`-DUSE_CUDA=ON`
,并通过
`-DCUDA_ROOT='/cuda/root/path'`
指定CUDA库的安装路径。如
`-DUSE_CUDA=ON -DCUDA_ROOT=
'/usr/local/cuda-9.2'`
。如需在GPU设备上使用半精度浮点数进行运算,需在启用
`
-DUSE_CUDA=ON`
参数的同时启用
`-USE_HALF_PRECISION=ON`
参数(需要注意的是半精度但需要注意的是,半精度操作仅在使用Pascal及更新架构的NVIDIA GPU中提供支持,该项可参考
[
NVIDIA GPU设备信息
](
https://developer.nvidia.com/cuda-gpus
)
进行查询)。
-
如项目计划启用CUDA数学运算库(需用户自行安装),则仅需在“CMake选项”中填入
`-DUSE_CUDA=ON`
,并通过
`-DCUDA_ROOT='/cuda/root/path'`
指定CUDA库的安装路径,通过-DGPU_ARCH=ARCH指定所在GPU设备的架
构(K:Kepler架构;M:Maxwell架构;P:Pascal架构;V:Volta架构;T:Turing架构;A:Ampere架构)。如
`-DUSE_CUDA=ON -DCUDA_ROOT='/usr/local/cuda-9.2' -DGPU_ARCH=P `
。如需在GPU设备上使用半精度浮点数进行运算,需在启用
`-DUSE
_CUDA=ON`
参数的同时启用
`-USE_HALF_PRECISION=ON`
参数(需要注意的是半精度但需要注意的是,半精度操作仅在使用Pascal及更新架构的NVIDIA GPU中提供支持,该项可参考
[
NVIDIA GPU设备信息
](
https://developer.nvidia.com/cuda-gpus
)
进行查询)。
##### CMake方式(命令行)
...
...
@@ -78,7 +78,7 @@ NiuTensor蟾・蜈キ蛹庄莉・蝨ィWindows縲´inux莉・蜿確acOS邇ッ蠅ク玖ソ幄。悟ョ芽」シ梧髪
-
执行CMake命令对项目进行生成,如计划生成动态链接库,则仅需在命令中额外加上
`-DGEN_DLL=ON`
的CMake参数即可,否则默认生成可执行程序。
-
如项目计划启用MKL数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_MKL=ON`
参数,并通过
`-DINTEL_ROOT='/intel/root/path'`
指定MKL库(Intel工具包)的安装路径。如
`cmake -DUSE_MKL=ON -DINTEL_ROOT='/opt/intel/compilers_and_libraries_2020.2.254/linux' ..`
。
-
如项目计划启用OpenBLAS数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_OPENBLAS=ON`
参数,并通过
`-DOPENBLAS_ROOT='/openblas/root/path'`
指定OpenBLAS库的安装路径。如
`cmake -DUSE_OPENBLAS=ON -DOPENBLAS_ROOT='/opt/OpenBLAS' ..`
。
-
如项目计划启用CUDA数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_CUDA=ON`
参数,并通过
`-DCUDA_ROOT='/cuda/root/path'`
指定CUDA库的安装路径。如
`cmake -DUSE_CUDA=ON -DCUDA
_ROOT='/usr/local/cuda-9.2' ..`
。如需在GPU设备上使用半精度浮点数进行运算,需在
启用
`-DUSE_CUDA=ON`
参数的同时启用
`-USE_HALF_PRECISION=ON`
参数(需要注意的是半精度但需要注意的是,半精度操作仅在使用Pascal及更新架构的NVIDIA GPU中提供支持,该项可参考
[
NVIDIA GPU设备信息
](
https://developer.nvidia.com/cuda-gpus
)
进行查询)。
-
如项目计划启用CUDA数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_CUDA=ON`
参数,并通过
`-DCUDA_ROOT='/cuda/root/path'`
指定CUDA库的安装路径,通过-DGPU_ARCH=ARCH指定所在GPU设备的架
构(K:Kepler架构;M:Maxwell架构;P:Pascal架构;V:Volta架构;T:Turing架构;A:Ampere架构)。如
`cmake -DUSE_CUDA=ON -DCUDA_ROOT='/usr/local/cuda-9.2' -DGPU_ARCH=P ..`
。如需在GPU设备上使用半精度浮点数进行运算,需在启用
`-D
USE_CUDA=ON`
参数的同时启用
`-USE_HALF_PRECISION=ON`
参数(需要注意的是半精度但需要注意的是,半精度操作仅在使用Pascal及更新架构的NVIDIA GPU中提供支持,该项可参考
[
NVIDIA GPU设备信息
](
https://developer.nvidia.com/cuda-gpus
)
进行查询)。
-
执行成功将显示
`Build files have been written to:...`
并在该目录下生成Makefile文件。
-
执行
`make -j`
命令对NiuTensor项目进行编译,执行成功将显示
`Built target NiuTensor`
,安装完毕。
...
...
@@ -137,4 +137,4 @@ NiuTensor蠑驥剰ョ。邂怜コ鍋罰荳懷圏螟ァ蟄ヲ閾ェ辟カ隸ュ險螟炊螳樣ェ悟ョ、蟆冗央蠑貅仙
## 更新版本
NiuTensor version 0.3.
3 - 2020年9月14日
NiuTensor version 0.3.
4 - 2020年12月26日
doc/manual.md
查看文件 @
63eee374
...
...
@@ -39,7 +39,7 @@ NiuTensor工具包可以在Windows、Linux以及macOS环境下进行安装,支
-
执行CMake命令对Visual Studio项目进行生成(如果 visual studio 版本低于 2019,则在使用下列命令的时候需额外加上
`-A x64`
的CMake参数),如计划生成动态链接库,则仅需在命令中额外加上
`-DGEN_DLL=ON`
的CMake参数即可,否则默认生成可执行程序。
-
如项目计划启用MKL数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_MKL=ON`
参数,并通过
`-DINTEL_ROOT='/intel/root/path'`
指定MKL库(Intel工具包)的安装路径。如
`cmake -DUSE_MKL=ON -DINTEL_ROOT='C:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2020.2.254/windows' ..`
。
-
如项目计划启用OpenBLAS数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_OPENBLAS=ON`
参数,并通过
`-DOPENBLAS_ROOT='/openblas/root/path'`
指定OpenBLAS库的安装路径。如
`cmake -DUSE_OPENBLAS=ON -DOPENBLAS_ROOT='C:/Program Files/OpenBLAS' ..`
。
-
如项目计划启用CUDA数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_CUDA=ON`
参数,并通过
`-DCUDA_ROOT='/cuda/root/path'`
指定CUDA库的安装路径
。如
`cmake -DUSE_CUDA=ON -DCUDA_ROOT='C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.2'
..`
。如需在GPU设备上使用半精度浮点数进行运算,需在启用
`-DUSE_CUDA=ON`
参数的同时启用
`-USE_HALF_PRECISION=ON`
参数(需要注意的是半精度但需要注意的是,半精度操作仅在使用Pascal及更新架构的NVIDIA GPU中提供支持,该项可参考
[
NVIDIA GPU设备信息
](
https://developer.nvidia.com/cuda-gpus
)
进行查询)。
-
如项目计划启用CUDA数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_CUDA=ON`
参数,并通过
`-DCUDA_ROOT='/cuda/root/path'`
指定CUDA库的安装路径
,通过-DGPU_ARCH=ARCH指定所在GPU设备的架构(K:Kepler架构;M:Maxwell架构;P:Pascal架构;V:Volta架构;T:Turing架构;A:Ampere架构)。如
`cmake -DUSE_CUDA=ON -DCUDA_ROOT='C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.2' -DGPU_ARCH=P
..`
。如需在GPU设备上使用半精度浮点数进行运算,需在启用
`-DUSE_CUDA=ON`
参数的同时启用
`-USE_HALF_PRECISION=ON`
参数(需要注意的是半精度但需要注意的是,半精度操作仅在使用Pascal及更新架构的NVIDIA GPU中提供支持,该项可参考
[
NVIDIA GPU设备信息
](
https://developer.nvidia.com/cuda-gpus
)
进行查询)。
-
执行成功将显示
`Build files have been written to:...`
。
-
打开build目录中的NiuTensor.sln文件即可通过Visual Studio打开NiuTensor项目。
-
打开后在解决方案管理器中选中NiuTensor,右键将其设为启动项目即可开始使用。
...
...
@@ -60,7 +60,7 @@ NiuTensor工具包可以在Windows、Linux以及macOS环境下进行安装,支
-
打开CLion首选项,点击“构建,执行,部署”选项卡中的CMake,在“CMake选项”中进行设置,设置完成后CLion将自动使用CMake对项目进行构建,如计划生成动态链接库,则仅需在在“CMake选项”中额外加上
`-DGEN_DLL=ON`
的CMake参数即可,否则默认生成可执行程序。
-
如项目计划启用MKL数学运算库(需用户自行安装),则仅需在“CMake选项”中填入
`-DUSE_MKL=ON`
,并通过
`-DINTEL_ROOT='/intel/root/path'`
指定MKL库(Intel工具包)的安装路径。如
`-DUSE_MKL=ON -DINTEL_ROOT='/opt/intel/compilers_and_libraries_2020.2.254/linux'`
。
-
如项目计划启用OpenBLAS数学运算库(需用户自行安装),则仅需在“CMake选项”中填入
`-DUSE_OPENBLAS=ON`
,并通过
`-DOPENBLAS_ROOT='/openblas/root/path'`
指定OpenBLAS库的安装路径。如
`-DUSE_OPENBLAS=ON -DOPENBLAS_ROOT='/opt/OpenBLAS'`
。
-
如项目计划启用CUDA数学运算库(需用户自行安装),则仅需在“CMake选项”中填入
`-DUSE_CUDA=ON`
,并通过
`-DCUDA_ROOT='/cuda/root/path'`
指定CUDA库的安装路径
。如
`-DUSE_CUDA=ON -DCUDA_ROOT='/usr/local/cuda-9.2'
`
。如需在GPU设备上使用半精度浮点数进行运算,需在启用
`-DUSE_CUDA=ON`
参数的同时启用
`-USE_HALF_PRECISION=ON`
参数(需要注意的是半精度但需要注意的是,半精度操作仅在使用Pascal及更新架构的NVIDIA GPU中提供支持,该项可参考
[
NVIDIA GPU设备信息
](
https://developer.nvidia.com/cuda-gpus
)
进行查询)。
-
如项目计划启用CUDA数学运算库(需用户自行安装),则仅需在“CMake选项”中填入
`-DUSE_CUDA=ON`
,并通过
`-DCUDA_ROOT='/cuda/root/path'`
指定CUDA库的安装路径
,通过-DGPU_ARCH=ARCH指定所在GPU设备的架构(K:Kepler架构;M:Maxwell架构;P:Pascal架构;V:Volta架构;T:Turing架构;A:Ampere架构)。如
`-DUSE_CUDA=ON -DCUDA_ROOT='/usr/local/cuda-9.2' -DGPU_ARCH=P
`
。如需在GPU设备上使用半精度浮点数进行运算,需在启用
`-DUSE_CUDA=ON`
参数的同时启用
`-USE_HALF_PRECISION=ON`
参数(需要注意的是半精度但需要注意的是,半精度操作仅在使用Pascal及更新架构的NVIDIA GPU中提供支持,该项可参考
[
NVIDIA GPU设备信息
](
https://developer.nvidia.com/cuda-gpus
)
进行查询)。
##### CMake方式(命令行)
...
...
@@ -71,7 +71,7 @@ NiuTensor工具包可以在Windows、Linux以及macOS环境下进行安装,支
-
执行CMake命令对项目进行生成,如计划生成动态链接库,则仅需在命令中额外加上
`-DGEN_DLL=ON`
的CMake参数即可,否则默认生成可执行程序。
-
如项目计划启用MKL数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_MKL=ON`
参数,并通过
`-DINTEL_ROOT='/intel/root/path'`
指定MKL库(Intel工具包)的安装路径。如
`cmake -DUSE_MKL=ON -DINTEL_ROOT='/opt/intel/compilers_and_libraries_2020.2.254/linux' ..`
。
-
如项目计划启用OpenBLAS数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_OPENBLAS=ON`
参数,并通过
`-DOPENBLAS_ROOT='/openblas/root/path'`
指定OpenBLAS库的安装路径。如
`cmake -DUSE_OPENBLAS=ON -DOPENBLAS_ROOT='/opt/OpenBLAS' ..`
。
-
如项目计划启用CUDA数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_CUDA=ON`
参数,并通过
`-DCUDA_ROOT='/cuda/root/path'`
指定CUDA库的安装路径
。如
`cmake -DUSE_CUDA=ON -DCUDA_ROOT='/usr/local/cuda-9.2'
..`
。如需在GPU设备上使用半精度浮点数进行运算,需在启用
`-DUSE_CUDA=ON`
参数的同时启用
`-USE_HALF_PRECISION=ON`
参数(需要注意的是半精度但需要注意的是,半精度操作仅在使用Pascal及更新架构的NVIDIA GPU中提供支持,该项可参考
[
NVIDIA GPU设备信息
](
https://developer.nvidia.com/cuda-gpus
)
进行查询)。
-
如项目计划启用CUDA数学运算库(需用户自行安装),则仅需在CMake命令中使用
`-DUSE_CUDA=ON`
参数,并通过
`-DCUDA_ROOT='/cuda/root/path'`
指定CUDA库的安装路径
,通过-DGPU_ARCH=ARCH指定所在GPU设备的架构(K:Kepler架构;M:Maxwell架构;P:Pascal架构;V:Volta架构;T:Turing架构;A:Ampere架构)。如
`cmake -DUSE_CUDA=ON -DCUDA_ROOT='/usr/local/cuda-9.2' -DGPU_ARCH=P
..`
。如需在GPU设备上使用半精度浮点数进行运算,需在启用
`-DUSE_CUDA=ON`
参数的同时启用
`-USE_HALF_PRECISION=ON`
参数(需要注意的是半精度但需要注意的是,半精度操作仅在使用Pascal及更新架构的NVIDIA GPU中提供支持,该项可参考
[
NVIDIA GPU设备信息
](
https://developer.nvidia.com/cuda-gpus
)
进行查询)。
-
执行成功将显示
`Build files have been written to:...`
并在该目录下生成Makefile文件。
-
执行
`make -j`
命令对NiuTensor项目进行编译,执行成功将显示
`Built target NiuTensor`
,安装完毕。
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论