Rust 异步并发框架在移动端的应用 - 陈明煜第三届中国 Rust 开发者大会 Rust 异步并发框架在移动端的应用 陈明煜 chenmingyu4@huawei.com 华为 公共开发部 嵌入式软件能力中心 本科就读加州大学圣地亚哥分校,毕业时长两年半, Rustacean 在 华为 目前正在使用 Rust 开发并行调度框架等模块。 Rust 异步并发框架在移动端的应用 陈明煜 chenmingyu4@huawei.com Runtime 并发框架 目录 Table of Contents #2 社区并发框架介绍以及与移动端的不适配性 Introduction to third party Runtime crates and their incompatibility with mobile environment Rust 异步机制 Asynchronous Rust 异步并发框架是许多大型应用、系统具备的底层能力。 任务调度颗粒度更小,充分利用线程资源 更可控的线程数 单个任务资源占用:几十 KB -> 几百 Byte 任务切换时间 : 10 微秒 -> 100 纳秒 Rust 语言并没有提供异步并发框架, 只提供异步所需的基本特性: Future async / await Waker asyn c Future Waker poll Syntax sugar wake await0 码力 | 25 页 | 1.64 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起RAII 内存管理 3.现代 C++ 进阶:模板元编程与函数式编程 4.编译器如何自动优化:从汇编角度看 C++ 5.C++11 起的多线程编程:从 mutex 到无锁并行 6.并行编程常用框架: OpenMP 与 Intel TBB 7.被忽视的访存优化:内存带宽与 cpu 缓存机制 8.GPU 专题: wrap 调度,共享内存, barrier 9.并行算法实战: reduce , 关于作者(续) • 我是 Taichi Blend 的作者( https://github.com/taichi-dev/taichi_blend ) 关于作者(再续) • 主导 Zeno 节点仿真框架的开发( https://github.com/zenustech/zeno ) 什么是编译器 • 编译器,是一个根据源代码生成机器码的程序。 • > g++ main.cpp -o a.out 旨在补充标准库没有的常用功能 6. bombela/backward-cpp - 实现了 C++ 的堆栈回溯便于调试 7. google/googletest - 谷歌单元测试框架 8. google/benchmark - 谷歌性能评估框架 9. glfw/glfw - OpenGL 窗口和上下文管理 10.libigl/libigl - 各种图形学算法大合集 fmt - 使用这个神奇的格式化库0 码力 | 32 页 | 11.40 MB | 1 年前3
Zadig 面向开发者的云原生 DevOps 平台/ 环境配置管理 • 服务编排 / 跨项目共享服务 • 开发者共享环境 - 自测子环境 扫码查看 TT 语音最佳实践 面向开发者的云原生环境 扫码查看飞书集成测试案例 • 无缝对接主流测试框架 / 平台 • API/E2E/UI 自动化测试管理 • 与开发协同自动化验收 • 自动化测试效益分析 高效协同的测试管理 • 一套 YAML/Chart 模板管理数百微服务 • 每个技术栈抽象一套构建模板 Zadig 每天数百次构建部署持续交付 “ 星云科技是我们持续创业的新业务,我们从一开始就采用了公有云、云原生等最新的理念, 结合以往的技术经验,毫无悬念的直接选择 Zadig 作为持续交付的核心组件,从最头打造最 高效的研发体系。 Zadig 解决了云原生环境的持续交付的难题,与 GitLab 等已在业界广泛 ” 使用的系统集成顺畅,互操作性强,是目前行业中最优雅的方案 去年, 我们整个微服务已经达到了 400 多个,还用传统那种运维方式很消耗内部开发资源。我们在 探索过程中发现了 Zadig ,今天 Zadig 技术体系已经成为我们的核心持续交付组件。 —— 研发负责人 詹佳杭 3 个集群、 15 个项目、 240 个服务、 52 条工作流、 18 个环境, 2397 个交付物 构建 3907 次,部署 2446 次0 码力 | 59 页 | 81.43 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南OpenCV::videoio 这 两个组件,如果没有这两个组件也会报错。 • find_package(OpenCV REQUIRED OPTIONAL_COMPONENTS core videoio) • 查找名为 OpenCV 的包,找不到就报错,可具有 OpenCV::core 和 OpenCV::videoio 这两个 组件,没有这两组件不会报错,通过 ${OpenCV_core_FOUND} ${OpenCV_core_FOUND} 查询是否找到 core 组件。 find_package 说是找“包”,到底是在找什么? • find_package(OpenCV) 实际上是在找一个名为 OpenCVConfig.cmake 的文件。 • 注:出于历史兼容性考虑,除了 OpenCVConfig.cmake 以外 OpenCV-config.cmake 这 个文件名也会被 CMake 识别到。 • 同理, ${XXX_LIBRARIES} ,有的又是 $ {XXX_LIBRARY} 非常沙雕,需要看相应 cmake 文件的注释,才能确定具体是怎么命名的 。 • 现代 CMake 就好多了,统一用 包名 :: 组件名 的格式。但是具体的组件名,还是要查看 cmake 文件中的注释才能确定。例如 CURL::libcurl OpenCV::core Qt5::core TBB::tbb 等。 现代和古代区别的总结 •0 码力 | 56 页 | 6.87 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南find_package(Qt5 REQUIRED) 出错了 原因: Qt5 具有多个组件,必须指定你需要哪些组件 find_package 生成的伪对象 (imported target) 都按照“包名 :: 组件名”的格式命名。 你可以在 find_package 中通过 COMPONENTS 选项,后面跟随一个列表表示需要用的组件。 测试一下能否找到 Qt 的头文件并编译通过 常见问题:小彭老师, Windows0 码力 | 166 页 | 6.54 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 06 TBB 开启的并行编程之旅RAII 内存管理 3.现代 C++ 进阶:模板元编程与函数式编程 4.编译器如何自动优化:从汇编角度看 C++ 5.C++11 起的多线程编程:从 mutex 到无锁并行 6.并行编程常用框架: OpenMP 与 Intel TBB 7.被忽视的访存优化:内存带宽与 cpu 缓存机制 8.GPU 专题: wrap 调度,共享内存, barrier 9.并行算法实战: reduce , ,需要做大量数学运算,因此瓶颈在 ALU 。 • 这里卖个关子,欲知后事如何,请待下集揭晓! 更专业的性能测试框架: Google benchmark • 手动计算时间差有点太硬核了,而且只运 行一次的结果可能不准确,最好是多次运 行取平均值才行。 • 因此可以利用谷歌提供的这个框架。 • 只需将你要测试的代码放在他的 • for (auto _: bm) • 里面即可。他会自动决定要重复多少次,0 码力 | 116 页 | 15.85 MB | 1 年前3
GPU Resource Management On JDOS– 用户训练完成后释放 GPU 资源,提高 GPU 利用率 – Job 调度 (部门 quota 限制 + 优先级) • 创建训练 – 用户选择集群提供代码地址和执行命令即可 – 选择所用框架(镜像):支持官方,亦可自制 (提供 dockerfile 生成镜像服务) – 选择存储来源:对接了内部的存储 – 填写代码地址,执行的命令等 – 可以选择是否监控训练,提供 tensorboard0 码力 | 11 页 | 13.40 MB | 1 年前3
Rust与算法 - 谢波中国大会第十届 Rust 处于起步阶段 中文圈学习资料或书籍少,有部分是翻译国外产品,能 不能中国人向国外输出作品 Rust 缺少学习资源 Rust 未来大有可为 Rust 在操作系统,数据库,各种框架和工具上应用范围 广 写作动机 当情况不明时,抱着一个纯粹的目标干事就行了,其他 的留给时间检验。不懂就学,技术写作更像一种共创, 要反复总结和修改 ( 费曼学习法 ) 。 写作本书给我的启示0 码力 | 28 页 | 3.52 MB | 1 年前3
基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺io/crates/dashmap Arrow • Schema with metadata • RecordBatch • IPC Stream Tonic + Arrow Flight • 以流为中心的 RPC 框架 Tokio - Future and .abort() • Future • JoinHandle::abort() Tokio - Cancel • Case 2: tokio::select0 码力 | 29 页 | 2.26 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人和运行时损耗 01 完善的测试类型支持,包括单元 测试、集成测试、基准测试等 02 03 和文档系统以及 CI/CD 工具的良 好集成 完整的断言系统 异步协程 零成本抽象 强大的测试框架 REPL 命令行客户端 WebUI 面向分析师,提供图模型定义、数据管理、图查询分析、服务状态监控、用户管理能力 免代码,可视化定义实体、 边,设计图模型。 【亮点】 • 支持模型导入导出0 码力 | 38 页 | 24.68 MB | 1 年前3
共 15 条
- 1
- 2













