C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南
负责处理全局有效的设定。而子 项目的 CMakeLists.txt 则仅考虑该子项目自身的设定,比 如他的头文件目录,要链接的库等等。 四、子项目的头文件 • 这里我们给 biology 设置了头文件搜索路径 include 。 • 因为子项目的 CMakeLists.txt 里指定的路径都是相对路径 ,所以这里指定 include 实际上是:根 /biology/include 。 • 注意我们用了 /biology/include 现在也加入 pybmain 的 头文件搜索路径了,因此 pybmain 里可以 #include 到 biology 的头文件。 • 同理如果又有一个 target_link_libraries(zxxpig PUBLIC pybmain) 那么 zxxpig 也有 pybmain 和 biology 的所有头文件搜索路径了。( PUBLIC 的原理详见第一期课程) 传染给 负责把包配置文件放到这里。如果第三方库的作者比较懒,没提供 CMake 支持(由安装 程序提供 XXXConfig.cmake ),那么得用另外的一套方法( FindXXX.cmake ),稍后细 谈。 Windows 系统下的搜索路径 •/ • /cmake/ • / */ • / */cmake/ • / 0 码力 | 56 页 | 6.87 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起
GPU 专题: wrap 调度,共享内存, barrier 9.并行算法实战: reduce , scan ,矩阵乘法等 10.存储大规模三维数据的关键:稀疏数据结构 11.物理仿真实战:邻居搜索表实现 pbf 流体求解 12.C++ 在 ZENO 中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 I 硬件要求: 64 位( 32 位时代过去了) 至少 printf 等一系列函数声明的头文件而已,实际的实现是在 libc.so 这个动态库里。其中这种形式表示不要在当前目录下搜索,只在系统目 录里搜索,” hello.h” 这种形式则优先搜索当前目录下有没有这个文件,找不到再搜索系统 目录。 • 此外,在实现的文件 hello.cpp 中也导入声明的文件 hello.h 是个好习惯: 1. 可以保证当 hello.cpp out 的头文件搜索目录: ( 其中第一个 hellolib 是库名,第二个是目录 ) • 这样甚至可以用 来引用这个头文件了,因为通过 target_include_directories 指 定的路径会被视为与系统路径等价: 子模块的头文件如何处理(续) • 但是这样如果另一个 b.out 也需要用 hellolib 这个库,难道也得再指定一遍搜索路径吗? • 不需要,其实我们只需要定义 0 码力 | 32 页 | 11.40 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 03 现代 C++ 进阶:模板元编程
GPU 专题: wrap 调度,共享内存, barrier 9.并行算法实战: reduce , scan ,矩阵乘法等 10.存储大规模三维数据的关键:稀疏数据结构 11.物理仿真实战:邻居搜索表实现 pbf 流体求解 12.C++ 在 ZENO 中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 I 硬件要求: 64 位( 32 位时代过去了) 至少 is_same_v= true • is_same_v = false • 更多这类模板请搜索 c++ type traits 。 lambda 用途举例:立即求值 再也不需要烦人的 flag 变量 lambda 用途举例:局部实现递归 搜索关键字:匿名递归 恭喜!你已经基本学废了 lambda 表达式! • 总结: 1. lambda 作为参数:用 template 0 码力 | 82 页 | 12.15 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理
GPU 专题: wrap 调度,共享内存, barrier 9.并行算法实战: reduce , scan ,矩阵乘法等 10.存储大规模三维数据的关键:稀疏数据结构 11.物理仿真实战:邻居搜索表实现 pbf 流体求解 12.C++ 在 ZENO 中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 I 硬件要求: 64 位( 32 位时代过去了) 至少 std::dynamic_pointer_cast 8. 运算符重载 9. 右值引用 && 10. std::shared_ptr和 std::any • 只提供了关键字,详细信息请善用搜索引擎: bing.com 。(不要用 baidu.com ,那个是搜广告用的) • 如果感兴趣,我可以增添一节专门讲动态多态。 回家作业! • 已经发布到: https://github.com/parallel101/hw02 的拷贝构造函数能正常工作,且内存能够安全释放。 • 通过 pull request 提交你的作业,这样我可以通过 diff 页面清楚地看到你的改动。 • 什么事 pull request ?还是善用搜索引擎,这是作业的一部分( x 感谢观看! by 彭于斌( github@archibate ) 录播: https://space.bilibili.com/ 263032155 课件: https://github 0 码力 | 96 页 | 16.28 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南
上找不到 Qt5 包怎么办?我明明安装 了! 你是 Windows 系统,可能你安装了 Qt5 ,但是因为 Windows 系统的安装路径非常混乱, 没有固定的 /usr/lib 之类的默认路径可以搜索,所以出错了。 常见问题:小彭老师, Windows 上找不到 Qt5 包怎么办?我明明安装 了! • 假设你的 Qt5 安装在 C:\Qt\Qt5.14.2 ,则你去找找这个目录: • C:\Qt\Qt5 >Config.cmake 所 在位置 • 第二种是设置 Qt5_DIR 这个变量为 C:\Qt\Qt5.14.2\msvc2019_64\lib\cmake 。 • 这样只有 Qt5 这个包会去这个目录里搜索 Qt5Config.cmake ,更有针对性。 • 第三种 ( 推荐 ) ,直接在命令行通过 -DQt5_DIR=”xxx” 指定,这样不用修改 CMakeLists.txt 。 • 第四种,还可以通过设置环境变量0 码力 | 166 页 | 6.54 MB | 1 年前3新一代分布式高性能图数据库的构建 - 沈游人
个人 客户 账户 机构 客户 资产 合约 员工 手机号 设备 商品 商品 查询 / 操作 生活中无处不在的图 图分析技术分类 图查询 • 使用图数据库的查询语言进行点边搜索 图算法 • 中心性算法 • 社区算法 • 路径算法 • … 图深度学习 • 图嵌入 • 图卷积 • 图注意力网络 • 图自编码器 图查询及其应用场景 图查询 • 使用图数据库的查询语0 码力 | 38 页 | 24.68 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 04 从汇编角度看编译器优化
GPU 专题: wrap 调度,共享内存, barrier 9.并行算法实战: reduce , scan ,矩阵乘法等 10.存储大规模三维数据的关键:稀疏数据结构 11.物理仿真实战:邻居搜索表实现 pbf 流体求解 12.C++ 在 ZENO 中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 I 硬件要求: 64 位( 32 位时代过去了) 至少0 码力 | 108 页 | 9.47 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 06 TBB 开启的并行编程之旅
GPU 专题: wrap 调度,共享内存, barrier 9.并行算法实战: reduce , scan ,矩阵乘法等 10.存储大规模三维数据的关键:稀疏数据结构 11.物理仿真实战:邻居搜索表实现 pbf 流体求解 12.C++ 在 ZENO 中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 I 硬件要求: 64 位( 32 位时代过去了) 至少0 码力 | 116 页 | 15.85 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 05 C++11 开始的多线程编程
GPU 专题: wrap 调度,共享内存, barrier 9.并行算法实战: reduce , scan ,矩阵乘法等 10.存储大规模三维数据的关键:稀疏数据结构 11.物理仿真实战:邻居搜索表实现 pbf 流体求解 12.C++ 在 ZENO 中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 I 硬件要求: 64 位( 32 位时代过去了) 至少0 码力 | 79 页 | 14.11 MB | 1 年前3
共 9 条
- 1