夏歌-使用Rust构建LLM应用
第三届中国 Rust 开发者大会 使用 Rust 构建 LLM 应用 夏歌 SECTION TITLE SECTION TITLE 我们能不能直接用 Rust • 训练 • 推理 • AI 应用相关的工具 • WASI-NN spec • WasmEdge 已经支持 Pytorch 、 TensorFlow Lite • WASI-NN 2.0 比如 Langchain Rewrite 开发太难了 Low code Rust Rust 在系统编程已经取得了巨大成功 培养更广泛的 Rust 开发 围绕 LLM 生态封装相应的 Rust 框 架,让开发者能够使用简单的 Rust 写 应用 如何用 Rust 实现的 构建和部署 AI 相关工作流的 serverless 平台 • 上传 Rust function ,平台负责将 Rust 编译成 Wasm ,并运行在 WasmEdge0 码力 | 36 页 | 38.31 MB | 1 年前3应用 waPC (rust) 做软件测试工具
第三届中国 Rust 开发者大会 应用 waPC (rust) 做软件测试工具 Alan poon 潘泳权 大家好! @rustropy_gaming ruito_89 PhoTto / image / chart Webassembly Procedures Call waPC 协议标准化了本机代码调用 WebAssembly 和 WebAssembly 调用本机代码的通信 (messaging)0 码力 | 30 页 | 2.50 MB | 1 年前3陈东 - 利用Rust重塑移动应用开发-230618
第三届中国 Rust 开发者大会 利用 Rust 重塑移动应用开发 陈东 Aaron Chen CTO AccountLabs Rust China Conf 2023 2023 移动应用开发有那些选择? 1. Native 2. Flutter 3. React Native ? 利用 Rust 重塑移动应用开发 React Native is an open-source reload - Rendering Engine 利用 Rust 重塑移动应用开发 跨平台开发的优势和局限性 Pros: - Fast - Single Codebase - Third-party support (Javascript better than Dart) 利用 Rust 重塑移动应用开发 跨平台开发的优势和局 限性 Cons: - Performance Codebase 跨平台开发到到底 应该跨什么? UI or Logic ? 利用 Rust 重塑移动应用开发 Rust 在移动端应 用的价值 Rust is the only advanced choice for cross platform development. 利用 Rust 重塑移动应用开发 Rust 的特点 Why Rust? - Cross platform - Performance0 码力 | 22 页 | 2.10 MB | 1 年前3Rust 异步并发框架在移动端的应用 - 陈明煜
第三届中国 Rust 开发者大会 Rust 异步并发框架在移动端的应用 陈明煜 chenmingyu4@huawei.com 华为 公共开发部 嵌入式软件能力中心 本科就读加州大学圣地亚哥分校,毕业时长两年半, Rustacean 在 华为 目前正在使用 Rust 开发并行调度框架等模块。 Rust 异步并发框架在移动端的应用 陈明煜 chenmingyu4@huawei.com 华为 crates and their incompatibility with mobile environment Rust 异步机制 Asynchronous Rust 异步并发框架是许多大型应用、系统具备的底层能力。 区别于多线程编程模型,它带来以下优势: 任务调度颗粒度更小,充分利用线程资源 更可控的线程数 单个任务资源占用:几十 KB -> 几百 Byte 任务切换时间0 码力 | 25 页 | 1.64 MB | 1 年前3谈谈MYSQL那点事
读写性能都非常优秀 • 能够承载大数据量的存储和访问 能够承载大数据量的存储和访问 • 拥有自己独立的缓冲池,能够缓存数据和索引 拥有自己独立的缓冲池,能够缓存数据和索引 MySQL 架构设计—应用架构 强一致性 对读一致性的权衡,如果是对读写实时性要求非常高的话, 就将读写都放在 M1 上面, M2 只是作为 standby 。 比如,订单处理流程,那么对读需要强一致性,实时写实 途径,实际中尽可能两者兼顾。 MySQL 架构设计—高可用架构 系统优化:硬件、架构 系统优化:硬件、架构 服务优化 服务优化 应用优化 应用优化 MySQL MySQL 优化方式 优化方式 影响性能的因素 影响性能的因素 应用程序 应用程序 查询 查询 事务管理 事务管理 数据库设计 数据库设计 数据分布 数据分布 网络 网络 操作系统 操作系统 硬件 配置合理的 MySQL MySQL 服务器,尽量在应用本身达到一 服务器,尽量在应用本身达到一 个 个 MySQL MySQL 最合理的使用 最合理的使用 针对 针对 MyISAM MyISAM 或 或 InnoDB InnoDB 不同引擎进行不同定制 不同引擎进行不同定制 性配置 性配置 针对不同的应用情况进行合理配置 针对不同的应用情况进行合理配置 针对 针对 my.cnf0 码力 | 38 页 | 2.04 MB | 1 年前3新一代分布式高性能图数据库的构建 - 沈游人
数据库与大数据专场 海致简介—企业级知识图谱开创者 专业顶尖技术团队支撑 超 700 人团队,其中 80% 为技术人员,创始团队在完成全球第一个中文知 识图谱网站研发后,探索知识图谱技术在企业领域的应用。 2021 年,海致院 士专家工作站成立,站内清华大学计算机博士生占比达 90% 以上。 企业级数据解决方案专家 为建行、工行、交行、招行、上交所、深交所、中国人寿等 70+ 银行证券保险 企 国信通产业集团等电力能源行业提供数据智能产品解决方案及长期服务。 海致专注为政府、金融、能源等客户提供大数据处理、分析、挖掘服务,在互 联网技术基础上,打造专业、易用的企业级大数据实战应用产品及解决方案。 北京中关村总部 武汉运维中心 深圳研发中心 上海应用中心 专注于数据智能技术赋能中国数字经济发展 海致高性能图计算院士专家工作站 郑纬民 - 海致科技首席科学家 中国工程院院士、清华大学计算机科学与技术系教 大规模图数据分析平 台”荣获中国计算机学会( CCF : China Computer Federation )“ 2021 年 CCF 科 学技术奖科技进步卓越奖”。 伴随市场对于知识图谱应用的不断深入,图数据规模和应用性能之间的矛盾愈 加凸显,海致针对以上背景展开了系统性的技术攻关,解决了图数据的高效存 储、索引及复制难题,提出了基于图缩减的高效分析方法,并孵化出了一个大 规模图数据分析平台 AtlasGraph0 码力 | 38 页 | 24.68 MB | 1 年前3Await-Tree Async Rust 可观测性的灵丹妙药 - 赵梓淇
设计原理与实现 2 回顾 Async Rust 的设计与痛点 1 Await-Tree 的 应用与真实案例 3 Await-Tree Async Rust 可观测性的灵丹妙药 Await-Tree 的 设计原理与实现 2 回顾 Async Rust 的设计与痛点 1 Await-Tree 的 应用与真实案例 3 Async Rust 的优势 • 异步编程的共同优势 • async/await 如何解决? Await-Tree Async Rust 可观测性的灵丹妙药 Await-Tree 的 设计原理与实现 2 回顾 Async Rust 的设计与痛点 1 Await-Tree 的 应用与真实案例 3 设计目标 Await Tree 的设计原理与实现 • 追踪关键 Future 的生命周期和控制流 • Init, First Poll, Pending, Next Poll Rust 可观测性的灵丹妙药 Await-Tree 的 设计原理与实现 2 回顾 Async Rust 的设计与痛点 1 Await-Tree 的 应用与真实案例 3 Await Tree 在 RisingWave 中的应用 • 云原生 SQL 流式数据库 • risingwave.com • GitHub 4.5k Stars • “Materialized View” •0 码力 | 37 页 | 8.60 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串
和整数无异,例如 ‘ a’ 实际上会被编译器翻译成他对应的 ASCII 码: 97 。写 ‘ a’ 和写 (char)97 是完全一样的,方便阅读的语法糖而已。 “char 即整数”思想应用举例 “char 即整数”思想应用举例 C 语言帮手函数 帮手函数大全 • isupper(c) 判断是否为大写字母(‘ A’ <= c && c <= ‘Z’ )。 • islower(c) 判断是否为小写字母(‘ 就 能表示一个动态长度的数组,高,实在是高。 “0 结尾字符串”知识点应用举例 • 利用 C 语言字符串“以 0 结尾”这个特点,我们可以在一个 本来非 0 的字符处写入 0 ,来提前结束字符串。例如在第 n 个字符写入 0 ,就会只保留前 n 个字符作为一个子字 符串,删除后半部分。 “0 结尾字符串”知识点应用举例 • C 语言所谓的字符串类型 char * 实际上就是个首地址指 定的需求 ,和字符串本身的实现有太多耦合。 https://en.cppreference.com/w/cpp/string/basic_string/to_string to_string 应用案例 std::to_wstring 数字转宽字符串 • 同理还有 to_wstring ,用于把数字转换为 wstring 类型字符串。 std::sto* 字符串转数字 • std::stoi/stof/stod0 码力 | 162 页 | 40.20 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 05 C++11 开始的多线程编程
接受一个时间点的 sleep_until ,表示让当 前线程休眠直到某个时间点。 第 1 章:线程 进程与线程 • 进程是一个应用程序被操作系统拉起来加载到内存之后从开始执行到执行结束的这样一个 过程。简单来说,进程是程序(应用程序,可执行文件)的一次执行。比如双击打开一个 桌面应用软件就是开启了一个进程。 • 线程是进程中的一个实体,是被系统独立分配和调度的基本单位。也有说,线程是 CPU 可 对于高性能并行计算,更好的是多线程。 为什么需要多线程:无阻塞多任务 • 我们的程序常常需要同时处理多个任务。 • 例如:后台在执行一个很耗时的任务,比 如下载一个文件,同时还要和用户交互。 • 这在 GUI 应用程序中很常见,比如浏览 器在后台下载文件的同时,用户仍然可以 用鼠标操作其 UI 界面。 没有多线程:程序未响应 • 没有多线程的话,就必须等文件下载完了 才能继续和用户交互。 • 下载完成前,整个界面都会处于“未响应”状 CMakeLists.txt 里链接 Threads::Threads 即可: 有了多线程:异步处理请求 • 有了多线程的话,文件下载和用户交互分 别在两个线程,同时独立运行。从而下载 过程中也可以响应用户请求,提升了体验 。 • 可是发现一个问题:我输入完 pyb 以后, 他的确及时地和我交互了。但是用户交互 所在的主线程退出后,文件下载所在的子 线程,因为从属于这个主线程,也被迫退 出了。0 码力 | 79 页 | 14.11 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 性能优化之无分支编程 Branchless Programming
,编译器往往会自动检测到可以优化,帮你 应用“妙用加减乘”了,无法体现手动优化的意义。 不同写法的性能测试 • 我们照常编写了测试用例,禁止内联优化,同样生成 10^7 个随机数( -512 到 512 区间)。 • 至于为什么采用需要三个分支的 clamp 做测试? • 优化级别在 -O1 以上时,对于只有两个分支的 if- else ,编译器往往会自动检测到可以优化,帮你应用 “妙用加减乘”了,无法体现手动优化的意义。 ,所以我们其实可以转换成: • return x >= 0 ? sqrt(x) : sqrt(0); • 然后再把 sqrt 提取出来得到: • return sqrt(x >= 0 ? x : 0); • 再应用无分支优化: • return sqrt((x >= 0) * x); • 大功告成,对于 x < 0 的情况会变成 sqrt(0 * x) = sqrt(0) = 0 和原来一样; • 对于0 码力 | 47 页 | 8.45 MB | 1 年前3
共 21 条
- 1
- 2
- 3