夏歌-使用Rust构建LLM应用使用 Rust 构建 ChatGPT Telegram 机器人 使用 Rust 构建基于 ChatGPT 的 PR Review 机器人 当有新的 PR 或在 PR comment 收到关键词,就按照每次 commit 的记录对 PR 进行 review , 并且以 PR comment 的形式发回到 GitHub 这个机器人可以: "0.1.0" 使用 Rust 构建 PR review 使用 Rust 构建 PR review 机器 1. 状态为 Open 的 PR 2. 状态为 Open 的 PR 有新的 commit 3. 包含了关键词为 trigger phrase 的 issue comment ,并且排除 Hello 开头的 review 筛选事件 "0.1.0" 使用 Rust 构建 PR review 机器人0 码力 | 36 页 | 38.31 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化因此我想要用 _mm_prefetch 指令手动提示 CPU ,让他预取出下一个缓存行,不要被内部 t++ 的循环迷惑住了,告诉他我们还是要顺序读取下去的 。 • 结果这一提示反而还变慢了。怎么回事? X 方向插桩:手动预取下一缓存行,配合循环分块 • 原来 _mm_prefetch 指令本身的执行也要花费不少时间。我们给 预取提示给太频繁了,反而浪费了时间。 • 实际上只需要每隔0 码力 | 147 页 | 18.88 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人X86/ARM - 基于 RUST 语言保证性能优势 - 分布式架构性能可线性扩展 - 针对大规模图优化的存算引擎 - 配合 Atlas 图平台,实现无代码图分析 - Query 性能分析模块,启发式提示优化 - 内置多种分析函数,面向分析师友好 -MVOCC 保证事务一致性 - 多副本管理保证数据服务高可用 - 在线备份提供容灾保障 高速 易用 可靠 Why Rust ? Performance 图数据库关键特性 - 基于 RUST 语言保证性能优势 - 分布式架构性能可线性扩展 - 针对大规模图的优化的存算引擎 - 配合 Atlas 图平台,实现无代码图分析 - Query 性能分析模块,启发式提示优化 - 内置多种分析函数,面向分析师友好 -MVOCC 保证事务一致性 - 多副本管理保证数据服务高可用 - 在线备份提供容灾保障 高速 易用 可靠 Photo / image /0 码力 | 38 页 | 24.68 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 04 从汇编角度看编译器优化。 如果优化了: b = b; 最后 b 没有改变。 导致优化后结果不一样,这就是 编译器放弃优化的原因。 告诉编译器别怕指针别名: __restrict 关键字 __restrict 是一个提示性的关键字,是程序员向 编译器保证:这些指针之间不会发生重叠! 从而他可以放心地优化成功: __restrict 关键字:只需加在非 const 的即可 实际上, __restrict 只需要加在所有具有写入 让编译器放心做 SIMD 优化外,还可以用 OpenMP 的这条指令: 来迫使编译器无视指针别名的问题,并启用 SIMD 优化。不过你得给编译器打开 - fopenmp 这个选项。 循环中的矢量化:编译器提示忽略指针别名 • 除了可以用 __restrict , #pragma omp simd 外,对于 GCC 编译器还可以用: • #pragma GCC ivdep • 表示忽视下方 for0 码力 | 108 页 | 9.47 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南CMakeLists.txt 至少需要 CMake 版本 3.15 以上才能运行。 如果用户的 CMake 版本小于 3.15 ,会出现“ CMake 版本不足”的提示。 假设我现在构建一个需要版本 3.99 的 CMake 项目 会正常报错提示版本过低,而不是等到某处用到 3.99 版本才有的特性时才出错。 可以通过 cmake --version 查看当前版本 也可以通过 CMAKE_VERSION0 码力 | 166 页 | 6.54 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 03 现代 C++ 进阶:模板元编程表达式:传常引用避免拷贝开销 • 此外,最好把模板参数的 Func 声明为 Func const & 以避免不必要的拷贝: • 请爱思考的同学想想看,为什么 Func 的大小是 16 字节?提示:一个指针大 小为 8 字节,捕获了 2 个变量。 lambda 表达式:作为返回值 • 既然函数可以作为参数,当然也可以作为 返回值! • 由于 lambda 表达式永远是个匿名类型,0 码力 | 82 页 | 12.15 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 06 TBB 开启的并行编程之旅如何评价 • 公式:加速比 = 串行用时 ÷ 并行用时 • 理想加速比应该是核心的数量。 • for 部分加速比为 5.98 倍。 • reduce 部分加速比为 10.36 倍。 • 提示:老师的电脑是 6 个物理核心, 12 个逻辑核心。 • 似乎这里 reduce 的加速比是逻辑核心数量,而 for 的加速比是物理核心的数量? • 剧透:因为本例中 reduce 是内存密集型,0 码力 | 116 页 | 15.85 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 05 C++11 开始的多线程编程GCC 9 及以上( Linux 用户) CMake 3.12 及以上(跨平台作业) Git 2.x (作业上传到 GitHub ) CUDA Toolkit 10.0 以上( GPU 专题) 温馨提示: 1. 会用到第二讲( RAII 与智能指针)里的知识 2. 课件中一部分代码是基于 C++17 的 个人认为, C++11 中很多特性, 其实可以看做是为了支持多线程而 顺带引入的……如 chrono0 码力 | 79 页 | 14.11 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串过大,超出了字符串的长度,则抛出 out_of_range 异 常。 • 例如 “ helloworld”.replace(400, 2, “pful”) 会得到异常(和 at 同 款) • 启发性提示:因为 -1 转换为 size_t 后是个很大的数(因为补码 的规则,他实际上变成 0xffffffffffffffff ),所以可以给 len 指定 - 1 (或者 string::npos )来迫使0 码力 | 162 页 | 40.20 MB | 1 年前3
共 9 条
- 1













