 C++高性能并行编程与优化 -  课件 - 17 由浅入深学习 map 容器由浅入深学习 map 容器 by 彭于斌( @archibate ) 我负责监督你鞋习 ! 我负责监督你鞋习 ! 本期看点: 用方括号 [ ] 取出 map 元素居然是错误的! 能不能在遍历的同时删除元素?安全吗? emplace , emplace_hint , try_emplace 的区别? 课程安排 1. vector 容器初体验 & 迭代器入门 (BV1qF411T7sd) 2 char * 的爱恨纠葛 (BV1ja411M7Di) 4. 万能的 map 容器全家桶及其妙用举例 ( 本期 ) 5. 函子 functor 与 lambda 表达式知多少 6. 通过实战案例来学习 STL 算法库 7. C++ 标准输入输出流 & 字符串格式化 8. traits 技术,用户自定义迭代器与算法 9. allocator ,内存管理与对象生命周期 10. C++ 异常处理机制的前世今生0 码力 | 90 页 | 8.76 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 17 由浅入深学习 map 容器由浅入深学习 map 容器 by 彭于斌( @archibate ) 我负责监督你鞋习 ! 我负责监督你鞋习 ! 本期看点: 用方括号 [ ] 取出 map 元素居然是错误的! 能不能在遍历的同时删除元素?安全吗? emplace , emplace_hint , try_emplace 的区别? 课程安排 1. vector 容器初体验 & 迭代器入门 (BV1qF411T7sd) 2 char * 的爱恨纠葛 (BV1ja411M7Di) 4. 万能的 map 容器全家桶及其妙用举例 ( 本期 ) 5. 函子 functor 与 lambda 表达式知多少 6. 通过实战案例来学习 STL 算法库 7. C++ 标准输入输出流 & 字符串格式化 8. traits 技术,用户自定义迭代器与算法 9. allocator ,内存管理与对象生命周期 10. C++ 异常处理机制的前世今生0 码力 | 90 页 | 8.76 MB | 1 年前3
 新一代分布式高性能图数据库的构建 - 沈游人度高,研制难度大,创新性强,项目成果整体达到国际先进水平, 其中异质图建模与表示学习技术和超大规模图学习系统处于国际领 先水平。” 以终为始,以行为知,这一项目从图计算所面临的挑战出发,解决了大规模图数据所产生 的建模能力不足、结构知识难用、巨量数据难算等技术挑战,实现了大规模复杂异质图数 据的表示学习模型、语义推荐和风险管理关键技术,构建了完整的兼具理论指导与应用检 验的大规模图数 商品 商品 查询 / 操作 生活中无处不在的图 图分析技术分类 图查询 • 使用图数据库的查询语言进行点边搜索 图算法 • 中心性算法 • 社区算法 • 路径算法 • … 图深度学习 • 图嵌入 • 图卷积 • 图注意力网络 • 图自编码器 图查询及其应用场景 图查询 • 使用图数据库的查询语言进行点边的关联查询,可以快速完成传统数据库难以完成的 多度点边关 联 当前图的典型应用场景  计算某个事件在关联的企业、个人 之间的传递过程和传递概率 图深度学习及其应用场景 图嵌入 • 将高维的图信息映射到低维向量中 • 通过图嵌入将客户关系表示为低维向量,可以结合其 他客户行为特征进行机器学习训练 图卷积神经网络 • 对图结构数据进行卷积计算 • 通过已有的企业数据,通过 GCN 进行半监督学习和分 类,预测企业的违约概率 传统的关系型数据库的存储方式丢失了事物之间的关系信息0 码力 | 38 页 | 24.68 MB | 1 年前3 新一代分布式高性能图数据库的构建 - 沈游人度高,研制难度大,创新性强,项目成果整体达到国际先进水平, 其中异质图建模与表示学习技术和超大规模图学习系统处于国际领 先水平。” 以终为始,以行为知,这一项目从图计算所面临的挑战出发,解决了大规模图数据所产生 的建模能力不足、结构知识难用、巨量数据难算等技术挑战,实现了大规模复杂异质图数 据的表示学习模型、语义推荐和风险管理关键技术,构建了完整的兼具理论指导与应用检 验的大规模图数 商品 商品 查询 / 操作 生活中无处不在的图 图分析技术分类 图查询 • 使用图数据库的查询语言进行点边搜索 图算法 • 中心性算法 • 社区算法 • 路径算法 • … 图深度学习 • 图嵌入 • 图卷积 • 图注意力网络 • 图自编码器 图查询及其应用场景 图查询 • 使用图数据库的查询语言进行点边的关联查询,可以快速完成传统数据库难以完成的 多度点边关 联 当前图的典型应用场景  计算某个事件在关联的企业、个人 之间的传递过程和传递概率 图深度学习及其应用场景 图嵌入 • 将高维的图信息映射到低维向量中 • 通过图嵌入将客户关系表示为低维向量,可以结合其 他客户行为特征进行机器学习训练 图卷积神经网络 • 对图结构数据进行卷积计算 • 通过已有的企业数据,通过 GCN 进行半监督学习和分 类,预测企业的违约概率 传统的关系型数据库的存储方式丢失了事物之间的关系信息0 码力 | 38 页 | 24.68 MB | 1 年前3
 夏歌-使用Rust构建LLM应用Python 与 Docker Rust 与 WebAssembly 为什么要用 Rust ? Rewrite it in Rust Rust 太难学! 为什么不用 Rust ? 学习曲线太陡峭了,学习周期太长了 招 Rust 开发太难了 Low code Rust Rust 在系统编程已经取得了巨大成功 培养更广泛的 Rust 开发 围绕 LLM 生态封装相应的 Rust 框 视频演示如何使用 serverless 的方式部署 一个 PR review 机器人。 待插入视频,大概是 2 分钟的录屏 Talk is cheap, show me the code! • Telegram ChatGPT 机器 人 • PR Review 机器人 使用 Rust 构建基于 ChatGPT 的 Telegram 机器人 1. 通过不同的 prompt 扮演不同的角色,并且拥有短期记忆 with text 这个机器人可以: 使用 Rust 构建基于 ChatGPT 的 Telegram 机器人 "0.1.0" 基于 ChatGPT 的 Telegram 机器人 Cargo.toml "0.1.0" 基于 ChatGPT 的 Telegram 机器人 telegram 机器人的基础设置 "0.1.0" 基于 ChatGPT 的 Telegram 机器人 Open AI0 码力 | 36 页 | 38.31 MB | 1 年前3 夏歌-使用Rust构建LLM应用Python 与 Docker Rust 与 WebAssembly 为什么要用 Rust ? Rewrite it in Rust Rust 太难学! 为什么不用 Rust ? 学习曲线太陡峭了,学习周期太长了 招 Rust 开发太难了 Low code Rust Rust 在系统编程已经取得了巨大成功 培养更广泛的 Rust 开发 围绕 LLM 生态封装相应的 Rust 框 视频演示如何使用 serverless 的方式部署 一个 PR review 机器人。 待插入视频,大概是 2 分钟的录屏 Talk is cheap, show me the code! • Telegram ChatGPT 机器 人 • PR Review 机器人 使用 Rust 构建基于 ChatGPT 的 Telegram 机器人 1. 通过不同的 prompt 扮演不同的角色,并且拥有短期记忆 with text 这个机器人可以: 使用 Rust 构建基于 ChatGPT 的 Telegram 机器人 "0.1.0" 基于 ChatGPT 的 Telegram 机器人 Cargo.toml "0.1.0" 基于 ChatGPT 的 Telegram 机器人 telegram 机器人的基础设置 "0.1.0" 基于 ChatGPT 的 Telegram 机器人 Open AI0 码力 | 36 页 | 38.31 MB | 1 年前3
 C++高性能并行编程与优化 -  课件 - 10 从稀疏数据结构到量化数据类型https://github.com/parallel101/course 本课涵盖:稀疏矩阵、 unordered_map 、空间稀 疏网格、位运算、浮点的二进制格式、内存带宽优 化 面向人群:图形学、 CFD 仿真、深度学习编程人 员 第 0 章:稀疏矩阵 稠密数组存储矩阵 用 foreach 包装一下枚举的过程 改用 map 来存储 分离 read/write/create 三种访问模式 foreach 直接给出当前坐标指向的值 位,所以又称 float16 。精度很 低,但是节省内存空间! • 然而只有 GPU (比如 CUDA )支持 half 类型 , CPU 需要支持 AVX512fp16 这个扩展才能用 。 • 据说深度学习(很多都是 membound )很喜欢 用 half ,因为可以省一半内存,从而加快一倍。 • 反正小彭老师的 CPU 是不支持 AVX512fp16…… • 因此需要我们手写一些位运算,在 ,也就是触及了下一个页面,他才 会继续分配一个 4KB 的页面,这时才 8KB 被实际分配。比如这里我们分配了 16GB 内 存,但是只访问了他的前 4KB ,这样只有一个页被分配,所以非常快。 实验:那如果分配超过机器内存容量的空间会怎样 • 既然是操作系统的内存是惰性分配给用户程 序的,分块大小就是 4KB ,那么是不是可 以利用这一点实现稀疏? • 而当我们试图用 malloc 分配一段 4TB 的0 码力 | 102 页 | 9.50 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 10 从稀疏数据结构到量化数据类型https://github.com/parallel101/course 本课涵盖:稀疏矩阵、 unordered_map 、空间稀 疏网格、位运算、浮点的二进制格式、内存带宽优 化 面向人群:图形学、 CFD 仿真、深度学习编程人 员 第 0 章:稀疏矩阵 稠密数组存储矩阵 用 foreach 包装一下枚举的过程 改用 map 来存储 分离 read/write/create 三种访问模式 foreach 直接给出当前坐标指向的值 位,所以又称 float16 。精度很 低,但是节省内存空间! • 然而只有 GPU (比如 CUDA )支持 half 类型 , CPU 需要支持 AVX512fp16 这个扩展才能用 。 • 据说深度学习(很多都是 membound )很喜欢 用 half ,因为可以省一半内存,从而加快一倍。 • 反正小彭老师的 CPU 是不支持 AVX512fp16…… • 因此需要我们手写一些位运算,在 ,也就是触及了下一个页面,他才 会继续分配一个 4KB 的页面,这时才 8KB 被实际分配。比如这里我们分配了 16GB 内 存,但是只访问了他的前 4KB ,这样只有一个页被分配,所以非常快。 实验:那如果分配超过机器内存容量的空间会怎样 • 既然是操作系统的内存是惰性分配给用户程 序的,分块大小就是 4KB ,那么是不是可 以利用这一点实现稀疏? • 而当我们试图用 malloc 分配一段 4TB 的0 码力 | 102 页 | 9.50 MB | 1 年前3
 GPU Resource Management On JDOSGPU Resource Management On JDOS 梁永清 liangyongqing1@jd.com 提供的服务 1. 用于实验的 GPU 容器 2.基于 Kubeflow 的机器学习训练服务 3.模型管理和模型 Serving 服务 Experiment Training Serving 均基于容器,不对业务方直接提供 GPU 物理机 GPU 实验 JDOS 常规的容器服务0 码力 | 11 页 | 13.40 MB | 1 年前3 GPU Resource Management On JDOSGPU Resource Management On JDOS 梁永清 liangyongqing1@jd.com 提供的服务 1. 用于实验的 GPU 容器 2.基于 Kubeflow 的机器学习训练服务 3.模型管理和模型 Serving 服务 Experiment Training Serving 均基于容器,不对业务方直接提供 GPU 物理机 GPU 实验 JDOS 常规的容器服务0 码力 | 11 页 | 13.40 MB | 1 年前3
 C++高性能并行编程与优化 -  课件 - 04 从汇编角度看编译器优化• 其中 r8 到 r15 是 64 位 x86 新增的寄存器,给了汇编程序员更大的空间,降低了编译 器处理寄存器翻车( register spill )的压力。 • 因此 64 位比 32 位机器相比,除了内存突破 4GB 限制外,也有一定性能优势。 8 位, 16 位, 32 位, 64 位版本 al, ax, eax, rax r15b, r15w, r15d, r15 AT&T 汇编语言 指向同一个对象,而 Rust 从语法层面禁止,从而让编译器放心大胆 优化。 为什么标准委员会不改进一下?因为一旦放弃 兼容,就等于抛弃所有历史遗产的全新语言, 就和 Rust 无异,从而没有任何理由再学习 C++ 。 std::vector :也能实现 SOA ! 优化前 (AOS) 优化后 (SOA) 不过,请保证 x, y, z 三个 vector 是同样大小! 第 8 章:数学运算0 码力 | 108 页 | 9.47 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 04 从汇编角度看编译器优化• 其中 r8 到 r15 是 64 位 x86 新增的寄存器,给了汇编程序员更大的空间,降低了编译 器处理寄存器翻车( register spill )的压力。 • 因此 64 位比 32 位机器相比,除了内存突破 4GB 限制外,也有一定性能优势。 8 位, 16 位, 32 位, 64 位版本 al, ax, eax, rax r15b, r15w, r15d, r15 AT&T 汇编语言 指向同一个对象,而 Rust 从语法层面禁止,从而让编译器放心大胆 优化。 为什么标准委员会不改进一下?因为一旦放弃 兼容,就等于抛弃所有历史遗产的全新语言, 就和 Rust 无异,从而没有任何理由再学习 C++ 。 std::vector :也能实现 SOA ! 优化前 (AOS) 优化后 (SOA) 不过,请保证 x, y, z 三个 vector 是同样大小! 第 8 章:数学运算0 码力 | 108 页 | 9.47 MB | 1 年前3
 Zadig 面向开发者的云原生 DevOps 平台企业基于 CI/CD 工具自建 DevOps 流程平台 围绕 Jenkins 、 Tekton 、 Argo 等 搭建流程串接胶水平台 建设成本高 500-2000 万之间 使用和学习门槛高;随业务发展扩展性差 局限性大,内部推广难度极高,做完后维 护成本高价值难被证明 低采购成本、低实施成本, 内置模板库和最佳实践;高扩展性、技术先进性强 ,可灵活广泛接入现有工具链和业务场景 可用性极高,没有 Zadig 集成测试完 全没法做。 —— 字节跳动 SRE 工程师卢肇 兴 解决方案: Gerrit + Zadig 实现机器自动验证 扫 码 查 看 案 例 细 节 典型客户:新零售独角兽 用 Zadig 15 万家门店周发布 7 次 “ 没有 Zadig, 我们的自动化测试不可能做起0 码力 | 59 页 | 81.43 MB | 1 年前3 Zadig 面向开发者的云原生 DevOps 平台企业基于 CI/CD 工具自建 DevOps 流程平台 围绕 Jenkins 、 Tekton 、 Argo 等 搭建流程串接胶水平台 建设成本高 500-2000 万之间 使用和学习门槛高;随业务发展扩展性差 局限性大,内部推广难度极高,做完后维 护成本高价值难被证明 低采购成本、低实施成本, 内置模板库和最佳实践;高扩展性、技术先进性强 ,可灵活广泛接入现有工具链和业务场景 可用性极高,没有 Zadig 集成测试完 全没法做。 —— 字节跳动 SRE 工程师卢肇 兴 解决方案: Gerrit + Zadig 实现机器自动验证 扫 码 查 看 案 例 细 节 典型客户:新零售独角兽 用 Zadig 15 万家门店周发布 7 次 “ 没有 Zadig, 我们的自动化测试不可能做起0 码力 | 59 页 | 81.43 MB | 1 年前3
 Rust与算法 - 谢波算法相关知识 • Rust 实现数据结构 • Rust 实现算法 • 总结及学习资源 背景介绍 • 个人信息 • 写作动机 • 可参考点 • 为什么 背景介绍 # 个人职业 # 与 Rust 结缘 # 前 GPT 时代作品 个人信息 结算及大数据系统研发工程师 疫情下的明智选择 / 个人项目实践 学习中总结探索 2015 年发布,很多人近几年才知道 Rust , Rust 中国 中国大会第十届 Rust 处于起步阶段 中文圈学习资料或书籍少,有部分是翻译国外产品,能 不能中国人向国外输出作品 Rust 缺少学习资源 Rust 未来大有可为 Rust 在操作系统,数据库,各种框架和工具上应用范围 广 写作动机 当情况不明时,抱着一个纯粹的目标干事就行了,其他 的留给时间检验。不懂就学,技术写作更像一种共创, 要反复总结和修改 ( 费曼学习法 ) 。 写作本书给我的启示 基础、排序、查找、树、图 + 1; • V+E = 32 • 2E – F + 2 = 32 总结及学习资源 • 算法总结 • 学习资源 总结及学习资源 Rust 算法总结 • 复杂度分析及算法优化 • 别自己实现,用标准库 • 利用 Rust 特性实现高效算法 • 技术在进步,用新工具辅助学习 Rust 学习资源 # 社区/公众号 社区: Rust 语言中文社区、乐酷 Rust 技术论坛 公号:觉学社、0 码力 | 28 页 | 3.52 MB | 1 年前3 Rust与算法 - 谢波算法相关知识 • Rust 实现数据结构 • Rust 实现算法 • 总结及学习资源 背景介绍 • 个人信息 • 写作动机 • 可参考点 • 为什么 背景介绍 # 个人职业 # 与 Rust 结缘 # 前 GPT 时代作品 个人信息 结算及大数据系统研发工程师 疫情下的明智选择 / 个人项目实践 学习中总结探索 2015 年发布,很多人近几年才知道 Rust , Rust 中国 中国大会第十届 Rust 处于起步阶段 中文圈学习资料或书籍少,有部分是翻译国外产品,能 不能中国人向国外输出作品 Rust 缺少学习资源 Rust 未来大有可为 Rust 在操作系统,数据库,各种框架和工具上应用范围 广 写作动机 当情况不明时,抱着一个纯粹的目标干事就行了,其他 的留给时间检验。不懂就学,技术写作更像一种共创, 要反复总结和修改 ( 费曼学习法 ) 。 写作本书给我的启示 基础、排序、查找、树、图 + 1; • V+E = 32 • 2E – F + 2 = 32 总结及学习资源 • 算法总结 • 学习资源 总结及学习资源 Rust 算法总结 • 复杂度分析及算法优化 • 别自己实现,用标准库 • 利用 Rust 特性实现高效算法 • 技术在进步,用新工具辅助学习 Rust 学习资源 # 社区/公众号 社区: Rust 语言中文社区、乐酷 Rust 技术论坛 公号:觉学社、0 码力 | 28 页 | 3.52 MB | 1 年前3
 Go读书会第二期维特根斯坦(语言哲学奠基人) “ 不能改变你思维方式的语言,不值得学习” - Alan Perlis ( 首届图灵奖得主 ) Part1 - 进入 Go 语言编程思维导引 站在语言设计者的高度理解 Go 的与众不同 Go 诞生 与演进 Go 设计哲 学 Go 编程思 维举例 怎么学习 Go 思维? 学习本质是一种模仿。要学习 Go 思维,就要 去模仿 go 团队、 go 社区的优秀项目和代0 码力 | 26 页 | 4.55 MB | 1 年前3 Go读书会第二期维特根斯坦(语言哲学奠基人) “ 不能改变你思维方式的语言,不值得学习” - Alan Perlis ( 首届图灵奖得主 ) Part1 - 进入 Go 语言编程思维导引 站在语言设计者的高度理解 Go 的与众不同 Go 诞生 与演进 Go 设计哲 学 Go 编程思 维举例 怎么学习 Go 思维? 学习本质是一种模仿。要学习 Go 思维,就要 去模仿 go 团队、 go 社区的优秀项目和代0 码力 | 26 页 | 4.55 MB | 1 年前3
 C++高性能并行编程与优化 -  课件 - 01 学 C++ 从 CMake 学起编译器,是一个根据源代码生成机器码的程序。 • > g++ main.cpp -o a.out • 该命令会调用编译器程序 g++ ,让他读取 main.cpp 中的字符串(称为源码),并根据 C+ + 标准生成相应的机器指令码,输出到 a.out 这个文件中,(称为可执行文件)。 • > ./a.out • 之后执行该命令,操作系统会读取刚刚生成的可执行文件,从而执行其中编译成机器码, 调用系统提供的0 码力 | 32 页 | 11.40 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 01 学 C++ 从 CMake 学起编译器,是一个根据源代码生成机器码的程序。 • > g++ main.cpp -o a.out • 该命令会调用编译器程序 g++ ,让他读取 main.cpp 中的字符串(称为源码),并根据 C+ + 标准生成相应的机器指令码,输出到 a.out 这个文件中,(称为可执行文件)。 • > ./a.out • 之后执行该命令,操作系统会读取刚刚生成的可执行文件,从而执行其中编译成机器码, 调用系统提供的0 码力 | 32 页 | 11.40 MB | 1 年前3
共 21 条
- 1
- 2
- 3













