首页 / c++项目
#

c++项目

#
3921次浏览 63人互动
此刻你想和大家分享什么
热门 最新
C++项目|分布式大模型基础架构
1. 项目背景:针对端侧设备(树莓派、昇腾、RK系列)的低资源环境,设计一套轻量化分布式框架,实现大模型(LLM/ASR/TTS等)的高效协同推理,解决端侧设备算力分散、通信受限、动态扩展难等问题。技术栈:Linux、C++、ZMQ、设计模式、分布式架构、主从Reactor模式、docker、cmake、shell3. 项目设计方案1. 双模式部署设计:设计Docker与裸机双部署方案,通过自动化镜像部署和容器操作脚本,环境部署效率提升70%2. 底层混合通信组件:- 设计基于ZMQ的多模式通信中间件,通过工厂模式统一创建PUB/SUB、PUSH/PULL、RPC等6种通信策略,结合策略模式实现动态通信方式切换,降低业务层网络代码复杂度70%;- 构建高可用RPC框架,支持方法动态注册与服务发现,通过设置双端超时控制与自动重连机制提高通信可靠性;- 设计ZMQ消息封装模块,开发轻量级序列化协议,采用长度前缀+紧凑存储结构设计实现多参数打包/解包3. channel模块设计:- 统一管理底层多模式通信中间件的ZMQ连接,支持动态URL绑定,信道注册- 设计观察者模式和闭包方案,实现网络层与业务逻辑的解耦- 通过动态work_id路由和连接池技术,实现多unit单元通信隔离- JSON协议设计,用于节点间/外部用户消息交互4. 分布式任务调度框架设计-与业务节点关系(继承)- 采用 Reactor模式,设计异步事件驱动的任务调度框架,通过eventpp实现毫秒级事件响应- 动态RPC服务注册,支持跨业务节点 setup/exit 等指令的远程调用- 统一管理 work_id-channel 连接池,对上层业务节点屏蔽底层通信复杂性- 提供标准化setup等虚函数接口,支持业务节点自定义任务处理逻辑5. unit-manager模块- 设计RPC服务注册,实现信道自动注册/释放,SQL处理;并解析 action 实现动态分发请求- 实现轻量化内存kv缓存数据库 存储 unit 元信息;并提供线程安全SQL查询接口,供节点动态通信- 设计多协议网关,实现TCP/ZMQ协议转换,支持外部用户-内部业务节点通信交互- 设计主从多Reactor TCP通信框架,实现压测10000+TCP并发连接6. Node业务层接口设计- TASK任务管理:实现单任务实例管理,模型加载/推理/流式输出回调机制等- 服务层控制:自定义实现setup等接口,对业务节点进行生命周期管理,实现节点间相互订阅
点赞 评论 收藏
分享
c++ / cpp 项目分享
Google开源代码规范https://link.zhihu.com/?target=https%3A//github.com/zh-google-styleguide/zh-google-styleguide数据库cpp_redishttps://github.com/Cylix/cpp_redis/LevelDbhttps://github.com/google/leveldb文件解析器C++ JSON 解析器https://github.com/hjiang/jsonxx迷你的C++11 JSON库https://github.com/dropbox/json11TinyXMLhttps://sourceforge.net/projects/tinyxml/yaml-cpphttps://github.com/jbeder/yaml-cpp网络库Muduohttps://github.com/chenshuo/muduoHandyhttps://github.com/yedf/handyOatpphttps://github.com/oatpp/oatpp消息队列Libzmqhttps://github.com/zeromq/libzmqZeroMQhttps://zeromq.org/get-started/序列化Protobufhttps://github.com/protocolbuffers/protobuf远程过程调用(RPC)rest_rpchttps://github.com/qicosmos/rest_rpc谷歌gRPChttps://github.com/grpc/grpc百度brpchttps://github.com/apache/incubator-brpc腾讯tarshttps://github.com/TarsCloud/TarsCpp搜狗srpchttps://github.com/sogou/srpc测试Google Testhttps://github.com/google/googletest/Webbenchhttp://home.tiscali.cz/~cz210552/webbench.html学习型C++ 那些事https://github.com/Light-City/CPlusPlusThingshttps://light-city.club/sc/MyTinySTLhttps://github.com/Alinshans/MyTinySTLTinyhttpdhttps://github.com/EZLippi/Tinyhttpdmusikcubehttps://github.com/clangen/musikcubeLightweight Web Serverhttps://github.com/imarvinle/WebServerhttps://github.com/linyacool/WebServer零基础c++学习路线,带你从菜鸡,走向大厂收割机https://www.yuque.com/u41022237/xy0omf/khe1in5zuk02nq0a?singleDoc# 《零基础c++学习路线》
点赞 评论 收藏
分享
C++项目:分布式大模型基础架构
1、底层通信组件方案通信模式封装支持兼容多种通信模式普通消息模式:PUB/SUB(发布订阅)、PUSH/PULL(点对点通信)RPC 模式:通过ZMQ_REP、ZMQ_REQ 封装 RPC 功能RPC功能支持 RPC 方法的动态注册提供默认的 RPC 方法列表查询支持 RPC 调用2、Master模块(实现思路:类似ROS1 Master功能, 更轻量化)背景:分布式大模型系统中,多个节点(如llm/vlm, asr,tts, camera,yolo)需要动态发现彼此并高效通信,外部用户可以动态管理节点内任务调度​​节点注册与发现​实现轻量化内存kv缓存数据库:存储节点元信息;并提高sql查询接口,供节点动态通信节点启动时向Master模块注册,上报自身元信息;节点通信时自动匹配动态任务调度分配设计用户请求-任务匹配机制:外部用户仅封装简易数据包请求,可实现动态控制各个模块(启停/llm推理等)3、Channel模块封装上层发布-订阅(PUB/SUB)和点对点通信(PUSH/PULL)混合通信模式设计闭包,通过闭包将​​网络层​​(ZeroMQ)与​​业务层​​(用户回调)解耦,同时隐式维护了通信上下文状态。4、Infra基础架构模块rpc分布式控制指令下发+异步​事件驱动架构​​注册rpc_setup/rpc_pause等分布式控制接口->注册eventpp事件监听->上层触发rpc调用 -> 添加eventpp事件队列中-> 异步事件驱动->各子类Setup/Pause等功能接口标准化控制协议​​基于抽象接口(Setup/Pause等)实现跨模块统一管控,支持LLM/ASR/TTS等异构节点无缝集成5、TASK模块与Infra模块关系:类似与进程和线程之间关系,Infra模块负责资源分配和流程管控,TASK模块是真正干活的,干的活如下:各模块中模型生命周期管理(加载/卸载)infra推理包装回调输出等等
点赞 评论 收藏
分享
_Vesper:转go吧哥,感觉学cpp要有点沉淀(要么是对语言特性,内存管理之类的特别熟悉,要么就是你➕上一个别的方向,比如说cpp+音视频,cpp+引擎架构,cpp+算法工程这样的)
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客网在线编程
牛客网题解
牛客企业服务