C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串字符了(多余的部分实际上被用于表示 中文)。 • char 和整数无异,例如 ‘ a’ 实际上会被编译器翻译成他对应的 ASCII 码: 97 。写 ‘ a’ 和写 (char)97 是完全一样的,方便阅读的语法糖而已。 “char 即整数”思想应用举例 “char 即整数”思想应用举例 C 语言帮手函数 帮手函数大全 • isupper(c) 判断是否为大写字母(‘ A’ <= c && c 十六进制的字母无视大小写,例如 stoi(“7CFE”, nullptr, 16) 的也会得到 31198 。 stoi 的第三参数: base stoi 的 base 参数实战案例 冷知识: stof 支持科学计数法 字符串流 第 5 章 那 to_string 能不能指定十六进制? • 很遗憾, to_string 是个缓解“键盘压力”的帮手函数,功能根本不全。 • 用 + 来拼接字符串也只是初 后面的字符,因为 printf 只收到了一个首地址指针,他只好把出现 ‘ \0’ 的位置当做字符的结尾。 • 对于字符串来说好像无所谓(谁说话会带个 ‘ \0’ 啊),但是对于其他类型的 数据,比如科学家用一个浮点数组,一不小心算出个 0.0 就自动结束了,不 合理。 • 2. ‘\0’ 本身也是一个字符,需要占据额外的空间,因此长度为 n 的字符串实 际上需要 n + 1 的内存空间,末尾多出来的那一格空间存放0 码力 | 162 页 | 40.20 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人专注于数据智能技术赋能中国数字经济发展 海致高性能图计算院士专家工作站 郑纬民 - 海致科技首席科学家 中国工程院院士、清华大学计算机科学与技术系教 授、中国计算机学会前理事长,中国计算机系统结构 的学科带头人,我国高性能计算和存储系统等方面的 泰斗和先行者。 2021 年 3 月 25 日,海致科技与清华大学计算机科学与技术系共同建设高性能图计算院士专家工作站 。 高性能图计算是高性能计算、图计算两 生态体系,保持对全球科技竞争的战略均衡。 海致高性能图计算院士专家工作站 海致获得“ 2021 年 CCF 科学技术奖科技进步卓越奖” CCF 科学技术奖被认为是计算机科学与技术领域最具影响力的专业奖项之一, 其中科技进步卓越奖是 CCF 科技进步奖评选中的最高级别奖项,旨在嘉奖在计 算机科学、技术或工程领域具有重要发现、发明、原始创新,在相关领域有一 定国际影响的优秀成果, AtlasGraph 规模图数据分析平台 AtlasGraph 。 5 获得 2022 年中国电子学会科学技术奖科技进步一等奖 中国电子学会发布的《 2022 中国电子学会科学技术奖公告》,海 致星图与北京邮电大学、蚂蚁科技集团有限公司、中移动信息技术 有限公司联合研发的“大规模复杂异质图数据智能分析技术与规模化 应用”项目,斩获“科学技术奖科技进步一等奖”,这也是国内电子信 息领域的最高奖项。 该奖项由数十0 码力 | 38 页 | 24.68 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 10 从稀疏数据结构到量化数据类型• 可以用单精度的 float ,只占据 4 字节。 • 因为这里的循环体是内存瓶颈( membound ), 就直接加快了 2 倍! 浮点数的二进制存储格式 • 计算机存储浮点数的格式,很像科学计数法: ±1.ffffffff * 2^eee (区别在于他是二的指数) • 其中 f 是底数, e 是指数。正负号 ± 通过符号位来表示( 0 表示正, 1 表示负)。 • 这样的设计,使得浮点数可以表达很大范围的数。0 码力 | 102 页 | 9.50 MB | 1 年前3
Zadig 面向开发者的云原生 DevOps 平台研发不透明,规划凭感觉: • 发版时间靠运气 • 团队熬夜冲进度 研发透明化:不同项目清晰可见的效率、质量、进度 进度管理:根据团队客观数据,预测和确定项目规划 迭代进度一目了然 项目从无到有可核算 管理有数据科学依据 解放管理,更多时间花在 业务创新 平台运维 业务压力大,能力建设缓慢: • 大量工作花在工具链维护 • 项目间依赖复杂,环境管理难 • 交付版本依赖工单,发布风险高 • 公共资源 /0 码力 | 59 页 | 81.43 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 12 从计算机组成原理看 C 语言指针(e) 。 • 剩下的 23 位是底数位 (m) 。 • 值得注意的是指数位 (e) 是 +127 以后表示的。 • 浮点数实际表示的值是 • ± 1.mmmmmmm 2^e • 类似于人类的科学计数法,不过是二进制。 著名的“快速浮点平方根算法” • 这个算法是 99 年被人从一个游戏源码中扒 出来的,作者号称是游戏界的大神卡马克 ,但是追根溯源,貌似这个算法存在的还 要更久远,原始作者已不可考,暂且称为0 码力 | 128 页 | 2.95 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化blockSize*nx*nblur 需要缓存: blockSize*nblur 改进:只对 X 循环做分块 • 反而变慢了,是怎么回事? • 记得小彭老师说过,性能优化讲究组合拳,光看一 个改动有没有提升是不科学的。 • 所以我们再尝试配合一下其他优化手段,看看有没 有效果吧。 使用预取指令 • 反而更加慢了? • 可能是因为写入了 b 污染了一级缓存,导 致预取效果不好,我们用直写指令试试看0 码力 | 147 页 | 18.88 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程Ampere 什么的高大上架构名,那个是老黄拿来营销用的。 • 我们不考虑韭菜情怀的话不用管,我们只需要指定架构的版本号是多少就行啦。 • 毕竟一个 72 这样一个单调的整数,听起来没有“高大上地致敬科学家们的名字以彰显其高 尚人文情怀的超绝境界”吸引投资人嘛。 第 1 章:线程与板块 三重尖括号里的数字代表什么意思? • 刚刚说了 CUDA 的核函数调用时需要用 kernel<<<1,0 码力 | 142 页 | 13.52 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理format 支持 跑远了! • 鉴于 C++20 还没有普遍落地(例如 CMake 不支持 C++20 modules )因此我们的课程 基于 C++17 标准,有时会谈到 C++20 作为扩展阅读。 C++ 有哪些面向对象思想? C++ 思想:封装 比如要表达一个数组,需要:起始地址指针 v ,数组大小 nv 将多个逻辑上相关的变量包装成一个类 因此 C++ 的 vector 将他俩打包起来,避免程序员犯错 C++ ,才发展出了这些思 想,并将拷贝 / 移动 / 指针 / 可变性 / 多线程等概念作为语言基本元素存在。这些在我们的 业务里面是非常重要的,所以不可替代。 • (试图升华文章中心主旨) 扩展阅读关键字 • 限于篇幅,此处放出一些扩展知识供学有余力的同学研究: 1. P-IMPL 模式 2. 虚函数与纯虚函数 3. 拷贝如何作为虚函数 4. std::unique_ptr::release()0 码力 | 96 页 | 16.28 MB | 1 年前3
Go读书会第二期践行哲学,遵循惯例,认清本质,理解原理 • https://github.com/bigwhite/ GoProgrammingFromBeginnerToMaster 读书实践与体会 第三部分 Go 技术图书阅读:从外刊到内刊 Go 中文图书 Go 外文图书 读书方法 精读 • 选择高质量图书 • 脑图 + 细节摘录 + 行动清单(输出) 泛读 • 闲书 ( 不烧脑 ) • 碎片化(快读)0 码力 | 26 页 | 4.55 MB | 1 年前3
共 9 条
- 1













