前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大模型与AI底层技术揭秘(32)保卫冰砖的逆向工程

大模型与AI底层技术揭秘(32)保卫冰砖的逆向工程

作者头像
用户8289326
发布2024-04-30 19:35:06
1660
发布2024-04-30 19:35:06
举报

上一期,小H在梦里把游戏《仙剑奇侠传》跟武侠小说混到一起并且说梦话了,被大家嘲笑了。方老师顺便嘲笑了旁边玩《和平精英》的一个家伙:

With such a computer which could do 10 billion operation per second, NASA had launched moonshot ships in 1969, but U just use it to launch an RPG in the game.

“我再用中文说一遍,这台每秒能计算100亿次的计算机,NASA在1969年用它发射登月飞船,你却用它在游戏里面发射火箭筒。”

大家都笑了。的确,电子技术的发展,使得原本作为“大国重器”的高性能计算机变成了玩具。

时间闪回到1920年,列宁就提出了“共产主义就是苏维埃加全国电气化”。

这是因为,从马列主义的视角看来,只有实现了电气化,自动化,信息化和数字化,才能真正实现工业化,也就是实现共产主义的经济基础。

我们再把时间轴拖拽到1950年。

重获新生的大上海百废待兴,一名24岁的青年从大学毕业后,投身到了一所食品厂的建设中,并创立了“光明”品牌的冰淇淋和冰砖。匪徒们虽然遭到了可耻的失败,但并不善罢甘休。1950年2月6日,败退海岛苟且偷生的匪徒们出动轰炸机袭击上海,破坏了发电厂,而食品厂也停电了!如果两个小时内无法恢复供电,生产线上的冰砖原料和库房中的冰砖产品都面临着报废。大家心急如焚之时,这名青年站了出来。

“厂里有柴油机,我们拆下两台其他产品生产线的电动机,连接到柴油机,再把这两台电动机并联到电路里面,就可以先保障冷库和冰砖生产线了!”

大家冒着轰炸进行了电路抢修,果然,供电恢复了,全厂一片欢腾,上海人民的冰砖得到了挽救。

又过了几年,这名青年参与了新中国第一台汽轮发电机的设计。再然后,又为人民做出了一系列值得永远传颂的事迹。他自己在晚年却说:

“很惭愧,只是做了一点微小的工作”……

小H听故事听到光明冰砖这里,就跑去方老师桌上的冰箱,翻了半天只翻出无糖可乐,才回来继续听。

在这个故事里面,利用电动机作为发电机,抢修工厂供电的办法,就是最早的逆向工程方法论的落地实现。

上一期遗留的利用CUDA劫持,实现容器平台的GPU虚拟化方案的问题,也可以利用逆向工程的方式来解决。

这种逆向工程方式的代表为A云的cGPU。

A云cGPU的实现思路为,使用内核劫持来替代CUDA劫持,也就是在操作系统内核中增加一个虚拟GPU模块,对容器呈现为虚拟GPU设备。在容器挂载这个虚拟GPU设备时,修改后的容器运行时会让用户程序的请求下发到虚拟GPU设备,实际上由内核中虚拟GPU模块接管来自CUDA(原始版本)的请求。

上图为cGPU的架构图。

可见,cGPU的核心模块为cGPU内核虚拟化模块,以及配套的cGPU Container Runtime。cGPU内核虚拟化模块在对各个Pod呈现一个虚拟的GPU设备的同时,自身也能够实现简单的算力调度,通过修改各Pod的请求和回复,来隔离算力资源。

例如,基于权重的抢占调度:

cGPU按照容器数量,把物理GPU划分为若干份。如果有2个容器分别叫container1和container2,权重为m和n,那么,调度效果是这样的:

如果只有container1运行,则container1可以抢占到整个物理GPU的算力。而如果container1和container2同时运行,则container1和container2获得的理论算例比例为m:n。

由于cGPU的这种实现利用了容器各Pod共享操作系统的特性,不需要替换CUDA库,也没有适配CUDA库版本的额外工作,减少了GPU性能损耗。

但是,cGPU也有其特定的缺陷。如果一个容器Pod把运算请求发送到了物理GPU,已经开始执行了,在执行中,这个Pod的权重份额用完了。这时,cGPU无法中止运算的执行。实际上,这就造成了其他Pod可得的权重被挤占。

在公有云上,由于具备较大的资源池,可以为被挤占的这个Pod调度其他的物理GPU,也可以将这个Pod调度到其他的节点,以补偿其被挤占的份额,所付出的代价是增加部分GPU的采购成本。而在私有化部署的情况下,GPU的资源池比公有云往往少2-3个数量级,为保证被挤占的Pod能获取到自己应得的资源,也需要付出更大的代价。

这个问题实际上涉及到可运营的计算机系统中的一个重要的问题——QoS(Quality of Service,服务质量保障)。能否实现良好的QoS,实际上体现了对企业级和运营级计算机系统质量问题的敬畏。

我们如何实现GPU虚拟化的QoS呢?

请看下期。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅云霓的技术小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档