NVPL CMake 指南#
NVPL 为每个组件库提供 CMake 包配置 文件。
查找 NVPL 包#
如果 NVPL 是通过 OS 包管理器安装在 /usr
目录下,则 NVPL 包将已在默认 CMAKE_PREFIX_PATH
中。
nvpl_ROOT
环境变量应用于覆盖默认搜索路径,并强制在特定前缀下搜索 nvpl。如果您已将 nvpl 下载为独立的 tarball,请展开 tarball 并将结果目录的完整路径设置为 nvpl_ROOT
。
find_package() 命令用于查找 nvpl 和任何组件库
find_package(nvpl)
找到的每个 NVPL 组件库都将打印一条简短的状态消息,其中包含重要的位置。
提示
如果成功找到 nvpl,CMake 变量
nvpl_FOUND
将为 trueCMake 变量
nvpl_VERSION
将包含找到的版本如果未找到
nvpl
包,请传递REQUIRED
关键字以引发错误。无论
COMPONENTS
关键字如何,都将找到安装在同一前缀中的所有可用的 nvpl 组件库。要在一个特定组件未找到时引发错误,请使用
REQUIRED COMPONENTS ...
设置
QUIET
以避免打印状态消息,或者在未找到 nvpl 时报告错误find_package(nvpl)
可以安全地从项目中的不同位置多次调用。
链接到 NVPL 包#
NVPL 组件库在通用 nvpl::
命名空间下提供 导入的接口目标。要添加所有必要的标志以编译和链接 NVPL 库,请使用 target_link_libraries() 命令
target_link_libraries(my_target PUBLIC nvpl::<lib>_<opts>)
此处 <lib>
是库/API 的小写简写,<opts>
由库定义。
NVPL 目标#
NVPL 组件和目标名称使用全小写命名方案。有关可用选项的详细信息,请参阅各个库。
组件 |
目标 |
选项 / 注释 |
---|---|---|
blas |
|
|
fft |
|
FFTW API 接口 |
lapack |
|
|
rand |
|
单线程 多线程 (OpenMP) |
scalapack |
|
|
sparse |
|
|
tensor |
|
NVPL 变量#
每个 nvpl 组件库还导出 CMake 变量
nvpl_<comp>_VERSION
- 组件库的版本nvpl_<comp>_INCLUDE_DIR
- 组件头文件目录的完整路径nvpl_<comp>_LIBRARY_DIR
- 组件库目录的完整路径
示例#
请参阅 NVPLSamples Repo,了解每个库的 CMake 用法示例。