C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起
OpenVDB::openvdb 6. Boost::iostreams 7. Eigen3::Eigen 8. OpenMP::OpenMP_CXX • 不同的包之间常常有着依赖关系,而包管理器的作者为 find_package 编写的脚本(例如 /usr/lib/cmake/TBB/TBBConfig.cmake )能够自动查找所有依赖,并利用刚刚提 到的 PUBLIC PRIVATE https://cmake.org/cmake/help/latest/module/FindBLAS.html 安装第三方库 - 包管理器 • Linux 可以用系统自带的包管理器(如 apt )安装 C++ 包。 • > pacman -S fmt • Windows 则没有自带的包管理器。因此可以用跨平台的 vcpkg : https://github.com/microsoft/vcpkg • 使用方法:下载0 码力 | 32 页 | 11.40 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南
这个构建系统的构 建规则。 Ninja 是一个高性能,跨平台的构建系统, Linux 、 Windows 、 MacOS 上都可 以用。 • Ninja 可以从包管理器里安装,没有包管理器的 Windows 可以用 Python 的包管理器安 装: • pip install ninja (有趣的事实: CMake 也可以通过 pip install cmake 安装……) • 事实上, MSBuild /usr/lib/cmake/TBB/TBBConfig.cmake 长啥样? 不论是 TBBConfig.cmake 还是 FindTBB.cmake ,这个文件通常 由库的作者提供,在 Linux 的包管理器安装 tbb 后也会自动安装 这个文件。少部分对 CMake 不友好的第三方库,需要自己写 FindXXX.cmake 才能使用。 老年项目案例: OpenVDB (反面教材) 一些老年项目作者喜欢在项目里自己塞几个0 码力 | 166 页 | 6.54 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南
1/lib/cmake/Qt5” 设置。 举例, Windows 系统, Qt5 • 例如我把 Qt5 安装到了 D:/Qt5.12.1 。 • 首先找到他里面的 Qt5Config.cmake 文件所在位置(可以用文件管理器的“搜索”功能)。 • 假如你找到该文件的位置是 D:/Qt5.12.1/msvc2017/lib/cmake/Qt5/Qt5Config.cmake ,那 么请你设置变量 Qt5_DIR 为 D:/Qt5 一定要加在最前面! 举例, Linux 系统, Qt5 • 例如我把 Qt5 安装到了 /opt/Qt5.12.1 。 • 首先找到他里面的 Qt5Config.cmake 文件所在位置(可以用文件管理器的“搜索”功能)。 • 假如你找到该文件的位置是 /opt/Qt5.12.1/lib/cmake/Qt5/Qt5Config.cmake ,那么请你设 置变量 Qt5_DIR 为 /opt/Qt50 码力 | 56 页 | 6.87 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化
#ifdef WITH_TBB 包围住需 要用到 tbb 的部分,这样即使没有 tbb 的同学也能 正常编译其他没有 tbb 的 benchmark 。 • 毕竟微软的钱全用在买暴雪上了,没钱搞包管理器。 实战案例:矩阵乘法 • 分析访存规律: • a(i, j) 始终在一个地址不动(一般)。 • b(i, t) 每次跳跃 n 间隔的访问(坏)。 • c(t, j) 连续的顺序访问(好)。0 码力 | 147 页 | 18.88 MB | 1 年前3
共 4 条
- 1