
国产小电影🎬下载官方版
详情先容
国产小电影🎬完整版下载是一款模拟谋划战略游戏,该版本玩家可以直接通过安卓模拟器在电脑上装置体验。该游戏接纳唯美的水墨画风,将中国风元素融入游戏场景,为玩家带来极致的视觉享受,让您陶醉其中,感受w3u7903ejky2ywls之美。在游戏中,玩家将饰演一位祖师,开宗立派,作育一众有趣的学生,资助他们渡劫成仙。每位学生都拥有奇异的命格和属性,个性迥异,让您体验到千奇百怪的修仙生涯。
与此同时,国产小电影🎬最新版下载还拥有奇异的挂机机制,您可以将游戏安排在后台,解放双手,让学生们自动修炼、渡劫,知心呵护您的修仙门派。宗门地产建设也是游戏的主要内容,您可以自由摆放,打造属于自己的修仙宗门,创立仙门人的理想家园。从山海异兽到一石一木,随处充满着古韵仙风,让您似乎置身于修仙小说般的瑶池之中。
无需CUDA代码给H100加速33%-50%,Flash Attention作者新作火了特色
西风 发自 凹非寺量子位 | 公众号 QbitAI
无需CUDA代码,给H100加速33%-50%
Flash Attention、Mamba作者之一Tri Dao的新作火了。
他和两位普林斯顿CS博士生提出了一个名叫QuACK的新SOL内存绑定内核库,借助CuTe-DSL,完全用Python写,一点CUDA C++代码都没用到。
在带宽3TB/s的H100上,它的速率比像PyTorch的torch.compile、Liger这类已经由深度优化的库还要快33%-50%。
Tri Dao体现,让内存麋集型的内核抵达“光速”并非什么神秘技巧,只需把几个细节处置惩罚到位就行。
我很喜欢Phil Tillet对差别工具在生产力和性能方面各有取舍的看法,好比torch compile、triton、CUDA、PTX。但CuTe-DSL以及类似的基于Python的DSL或许能改变这一时势,虽然现在还处于早期阶段。并且,说未必很快我们就能让大语言模子来天生这些内核了!
新作一经发出,吸引不少大佬关注。
英伟达CUTLASS团队资深架构师Vijay转发,自诩他们团队做的CuTe-DSL把种种细节都打磨得很好,由此像Tri Dao这样的专家能够让GPU飞速运行。
同时他还预告今年会有更多相关内容推出。
同样被吸引而来的尚有PyTorch团队成员Horace He,上来就夸赞“太酷了,尤其关于长序列来说”。
不过他还指出,在处置惩罚长度不凌驾约16384的序列时,PyTorch的torch.compile的性能数据能较轻松地获得优化,更靠近理想状态。
接着给出了几点优化torch.compile性能的建议:
默认情形下,若用差别形状数据测试,torch.compile会天生动态形状内核,可通过设置dynamic=False关闭该行为。举行更多自动调优操作能进一步提升性能。torch.compile在天生无循环的长期化归约内核上较守旧,可通过启用多内核(设置(TORCHINDUCTOR_MULTI_KERNEL=1)来让其自动调优。
最后他体现,照旧不可否定QuACK是一项很是精彩的事情,并且它也是CuTe-DSL一个很好的教学示例。
Tri Dao也作出了回应,“太棒了,这正是我们想要的,我们会试试这些要领,然后更新图表”。
食用指南
QuACK作者们写了一篇教程来先容详细做法,内里的代码可以直接使用。
让内存麋集型内核抵达“光速”
想让GPU在模子训练和推理时都高速运转,就得同时优化两种内核:一种是盘算麋集型(好比矩阵乘法、注重力机制),另一种是内存麋集型(像逐元素运算、归一化、损失函数盘算)
其中,矩阵乘法和注重力机制已经是优化得相当到位了。以是作者这次把重点放在内存麋集型内核上——这类内核大部分时间都耗在内存会见(输入输出)上,真正用来盘算的时间反而未几。
只要搞懂并使用好现代加速器的线程和内存层级结构,就能让这些内核的速率迫近“理论极限”。并且多亏了最新的CuTe-DSL,不必写CUDA C或C++代码,在随手的Python情形里就能做到这一点。
内存麋集型的内核有个特点:它的算术强度(也就是浮点运算量FLOPs和传输字节数的比值)很小。一旦内核的算术强度落到内存麋集型的领域,它的吞吐量就不再由每秒能完成几多浮点运算决议,而是看每秒能传输几多字节了。
在这类内存麋集型的内核里,逐元素的激活操作处置惩罚起来相对简朴。由于每个元素的盘算互不滋扰,天生就适合完全并行处置惩罚。
不过,像softmax、RMSNorm这些深度学习算子中,还经常用到“归约”操作,需要对所有值举行聚合。
并行的连系性归约算法会执行O(log (归约维度数))轮的部分归约,这些归约在差别空间的线程间举行,而作者对 GPU内存层级的相识将在此历程中施展作用。
并行最大归约:
接下来,作者将先容怎样使用GPU的内存层级结构来实现高效的归约内核。
作为示例,使用CuTe DSL实现了大语言模子里常用的三个内核:RMSNorm、softmax和交织熵损失
目的是抵达硬件的最大吞吐量,即 “GPU光速吞吐量”,而这需要两个要害要素:1)全局内存的合并加载/存储;2)硬件感知的归约战略。
别的,作者还将诠释集群归约,以及它怎样助力超大规模归约使命,这是英伟达GPU从Hopper架构(H100)最先引入的一个较新特征。
然后,详细解说这些要害要素的细节,并叙述它们怎样资助编写“光速”内核。
GPU内存层级结构
在写内核代码前,得先搞明确现代GPU的内存层级是怎么回事。这里以Hopper架构的GPU(好比 H100)为例举行说明。
Hopper架构的GPU里,CUDA的执行分为四个层级:线程(threads)、线程块(thread blocks)、新引入的线程块集群(thread block cluster)以及完整网格(the full grid)。
单个线程是在流式多处置惩罚器(SM)里,以32个线程一组的“warp”形式运行的;每个线程块拥有一块192-256 KB的统一共享内存(SMEM),统一线程块内的所有warp都可会见该内存。
H100的线程集群允许最多16个运行在相邻SM上的线程块,通过漫衍式共享内存(DSMEM)结构读取、写入相互的共享内存并执行原子操作。这一历程通过低延迟的集群屏障举行协调,从而阻止了价钱高昂的全局内存往返传输。
内存的每个层级都有用于外地归约的读写原语。因此,作者将在CuTe DSL中开发一个通用的归约模板,使H100在256-262k的归约维度规模内始终抵达“光速”吞吐量。
H100中的内存层级结构:
Hopper GPU的执行粒度与内存层级之间的对应关系:
每个内存层级的会见延迟和带宽都纷歧样。
好比,会见线程自己的寄存器也就几纳秒,会见共享内存大提要 10-20纳秒。再往上,会见L2缓存的延迟就会飙升到150-200纳秒,最后会见DRAM(主存)得花约400纳秒。
带宽方面,会见寄存器能抵达100 TB/s,会见共享内存(SMEM)约为20-30 TB/s,会见L2缓存是5-10 TB/s。关于受内存限制的内核来说,H100的HBM3显存带宽(3.35TB/s)往往是性能瓶颈。
以是,为了把硬件性能榨干,设计内存麋集型的内核时,得顺着内存层级来
最好将大部分外地归约操作分派在较高的内存层级上,只将少量经由外地归约后的值转达到下一个内存层级。Chris Fleetwood在博客里对A100(不含线程块集群)的内存会见延迟举行了类似的说明,而H100则在共享内存(SMEM)和全局内存(GMEM)之间增添了一个特另外内存层级笼统。
H100中内存会见的延迟:
硬件感知的加载与存储战略
写内核代码时,第一个要解决的问题就是“怎么加载输入数据、存储效果”。关于受内存限制的内核来说,HBM的3.35 TB/s通常是瓶颈,这意味着需要在加载和存储战略上做到极致优化。
在启动内核之前,首先会通过特定的线程-值结构(TV-layout)对输入数据举行分区。这决议了每个线程怎么加载和处置惩罚归约维度上的值。
由于每个线程都要从全局内存(GMEM)加载数据,以是得想步伐确保每次加载操作在硬件上一连地传输最大数目的bits。这种手艺通常被称为内存合并(memory coalescing)或全局内存的合并会见(coalesced access to global memory),CUDA最佳实践指南对这一看法举行了更详细的诠释。
合并内存会见:
在H100中,这意味着每个线程处置惩罚的数据量得是128bits的倍数, 即4xFP32或者8xBF16。因此,关于FP32来说,这会将4次加载和存储操作组合(或“向量化”)为一次内存事务,从而最大化吞吐量。
详细操作上,作者会异步地将数据从全局内存(GMEM)加载到共享内存(SMEM),然后将加载操作向量化到寄存器中。等归约出最终效果后,就直接存回全局内存。
有时间,还可以把输入数据从全局内存或共享内存重新读到寄存器,这样能镌汰寄存器的占用,阻止数据“溢出”。
下面是用Python CuTe DSL写的加载操作代码片断,为了看着简朴,这里省略了数据类型转换和掩码谓词的相关代码。
硬件感知的归约战略
当每个线程持有一个小的输入向量后,就可以最先对它们举行归约了。每次归约都需要举行一次或多次完整的行扫描。
追念一下,从内存层级的顶层到低层,会见延迟逐渐增添,而带宽逐渐镌汰。
因此,归约战略应遵照这种硬件内存层级
一旦部分效果存留在内存金字塔的较高层级中,就连忙对其举行聚合,只将经由外地归约后的值转达到下一个内存层级。
作者会凭证下表从顶层到低层对值举行归约,并且每一步都只在对应的内存层级中举行加载和存储操作。
差别内存层级中的归约战略:
1、线程级归约(读写寄存器)
每个线程会在外地对多个向量化加载的值举行归约。作者使用TensorSSA.reduce函数,其中需要传入一个可连系的归约算子op、归约前的初始值init_val,以及归约维度reduction_profile。
2、Warp级归约(读写寄存器)
warp是由32个一连线程组成的牢靠组,每周期会执行相同的指令。(同步的)warp归约允许统一Warp内的每个线程通过专用的洗牌(shuffle)网络,在一个周期内读取另一个线程的寄存器。经由蝶式warp归约后,统一warp中的每个线程都会获得归约后的值。
作者界说了一个辅助函数warp_reduce,用于以“蝶式”归约顺序执行Warp归约。关于warp级原语的详细诠释,读者可参考Yuan和Vinod撰写的CUDA博客“Using CUDA Warp-Level Primitives”。
蝶式warp归约(Butterfly warp reduction),也称为 “xor warp shuffle”:
3、线程块级归约(读写共享内存)
一个线程块通常包括多个(在H100中最多32个)warp。在线程块归约中,每个加入归约的warp中的第一个线程会将该warp的归约效果写入共享内存中预先分派的归约缓冲区。
在经由线程块级同步(屏障)确保所有加入的warp都完成写入后,每个warp的首线程会从归约缓冲区中读取数据,并在外地盘算出线程块的归约效果。
4、集群归约(读写漫衍式共享内存)
线程块集群是Hopper架构中新增的执行层级,由一组相邻的线程块(最多16个)组成。统一集群内的线程块通过漫衍式共享内存(DSMEM)举行通讯,这种内存有专门的高速SM间网络支持。
在统一集群中,所有线程都可通过DSMEM会见其他SM的共享内存,其中共享内存的虚拟地点空间在逻辑上漫衍于集群内的所有线程块。DSMEM可通过简朴的指针直接会见。
漫衍式共享内存:
在集群归约中,作者首先把目今warp的归约效果通过专用的SM间网络(也就是DSMEM),发送到其他对等线程块的共享内存缓冲区里。
随后,每个warp从其外地归约缓冲区中获取所有warp的值,并对这些值举行归约。
这里还得用到一个内存屏障用来统计数据抵达的数目,以阻止过早会见外地共享内存(不然会导致不法内存会见的过失)。
把整个归约流程串起来看:首先做线程级归约,然后在统一个warp内聚合线程级归约的效果(即warp级归约),接着凭证归约维度的数目,在每个线程块或线程块集群上进一步转达归约后的值。
NCU 性能剖析(Softmax 内核)
作者在配备HBM3显存(DRAM峰值吞吐量=3.35 TB/s)的NVIDIA H100 上,对批量维度为16K、归约维度为 131K的softmax内核做了性能测试。内存事情负载图由Nsight Compute天生。
设置是:线程块集群巨细为4,每个线程块有256个线程,输入数据类型为FP32。加载和存储操作都做了向量化处置惩罚,每条指令一次搬运128 bits数据(也就是4 FP32值)
最终测出来的DRAM吞吐量也就是显存带宽使用率抵达了3.01TB/s,相当于DRAM峰值吞吐量的89.7%。除了共享内存(SMEM)外,还高效使用了漫衍式共享内存(DSMEM)。
该计划的内存事情负载图:
作者还拿自己的实现与torch.compile(PyTorch 2.7.1 版本)举行了比照。
首先,获取了torch.compile天生的Triton内核代码。
该内核实现softmax时包括2次全局内存加载(盘算行最大值和部分指数和时各加载1次,以及最终的softmax 值)和1次存储。
在这种情形下,只管该Triton内核仍能使硬件的DRAM吞吐量跑满,但特另外1次不须要加载会导致Triton 内核的有用模子内存吞吐量(约2.0 TB/s)仅为本文作者实现计划的三分之二(约3.0 TB/s)
torch.compile天生的Triton内核(调优设置部分省略)
内存吞吐量
作者对RMSNorm、softmax和交织熵损失这几个内核做了基准测试。测试仍在配备HBM3显存的1块NVIDIA H100 80GB GPU和Intel Xeon Platinum 8468 CPU上举行。
测试中使用的批量巨细规模为8k-32k,归约维度规模为256-262k(256×1024),输入数据类型为FP32和 BF16。
基准对例如案如下:
Torch.compile(PyTorch 2.7.1版本):使用默认编译模式。Liger 内核 v0.5.10版本 :只测了RMSNorm 和 softmax,且归约维度最多到65k(由于它现在不支持更大的维度)。cuDNN v9.10.1版本:只测了RMSNorm内核。
作者基于CuTe DSL的实现计划,在归约维度大于4k时,内存吞吐量一样平常能稳固在3TB/s左右(差未几是峰值的90%)
归约维度262k时,FP32的softmax吞吐量能到3.01TB/s,而torch.compile只有1.89TB/s,快了近50%。关于这3个内核,当归约维度≥65k 时,该实现计划显著优于所有基准对例如案。
多个内核的模子内存吞吐量:
作者以为,在输入规模≥65k时的优异性能得益于乐成使用了H100中的集群归约
当输入数据量大到把SM的寄存器和共享内存都占满时,若是不必集群归约,就只能换成在线算法(好比在线softmax);不然的话,寄存器里的数据会大宗“溢出”,导致吞吐量显著下降。
举个例子,作者视察到,当使用Liger softmax内核时,输入规模从32k涨到65k,吞吐量就从约3.0 TB/s掉到了2.0 TB/s左右。
作者用NCU(Nsight Compute)工具剖析了它的内存负载图和SASS代码,发明当每个SM要加载65k数据时,SM的资源被耗尽,效果就是大宗寄存器溢出,还会频仍往HBM里回写数据,这才拖慢了速率。
Liger softmax内核在批量维度为16k、归约维度为65k且数据类型为FP32时的内存事情负载:
Liger softmax内核汇编代码中的寄存器溢出(LDL指令):
但集群归约能让多个SM协同事情,共享各自的资源,相当于组成一个“超等”SM(靠DSMEM实现)。
假设单个SM仅能处置惩罚32k输入,那么一个巨细为16的集群将允许处置惩罚50万(0.5M)输入,而无需从全局内存(GMEM)重新加载数据。
由于作者对硬件知识有清晰的明确,纵然使用通例的3遍扫描softmax算法,也能轻松充分使用所有内存层级的每一个字节,实现“光速”级别的吞吐量。
总结
作者通过实践证实,只要全心手工编写CuTe内核,就能把硬件里所有内存层级的潜力都榨干,实现“光速”级别的内存吞吐量。
但这种效率是以针对每个算子甚至每个输入形状举行调优为价钱的,这自然在效率与开发本钱之间形成了一种权衡。
Phil Tillet(Triton的作者)在他的演讲中用这张图很好地叙述了这一点。
凭证作者使用CuTe-DSL的履历,它既具备Python的开发效率,又拥有CUDA C++的控制能力和性能。
作者以为,高效的GPU内核开发流程是可以自动化的。
例如,RMSNorm中的输入张量TV结构、加载/存储战略以及归约辅助函数,可直接应用于softmax内核并仍能抵达相近的吞吐量。
别的,CuTe DSL将为开发者或基于CuTe DSL运行的其他代码天生应用提供无邪的GPU内核开发能力。
现在,将大语言模子应用于自动天生GPU内核是一个活跃的研究偏向,未来,或许只需挪用“LLM.compile” 就能天生高度优化的GPU内核。
作者简介
这项事情作者有三位。
Wentao Guo
Wentao Guo现在是普林斯顿大学盘算机科学专业的博士生,师从Tri Dao。
在这之前,他在康奈尔大学获得了盘算机科学的本科和硕士学位。
Ted Zadouri
Ted Zadouri同样是普林斯顿大学盘算机科学专业的博士生,本硕划分读自加州大学欧文分校、加州大学洛杉矶分校
此前Ted Zadouri曾在英特尔实习,也曾在Cohere研究大语言模子的参数高效微调。
Tri Dao
Tri Dao现在是普林斯顿大学盘算机科学助理教授,照旧天生式AI首创公司Together AI的首席科学家。
他因提出一系列优化Transformer模子注重力机制的事情而著名学界。
其中最有影响力的,是其作为作者之一提出了Mamba架构,这一架构在语言、音频和基因组学等多种模态中都抵达了SOTA性能。
尤其在语言建模方面,无论是预训练照旧下游评估,Mamba-3B模子都优于一律规模的Transformer模子,并能与两倍于其规模的Transformer模子相媲美。
另外他还加入揭晓了FlashAttention1-3版本,FlashAttention被普遍用于加速Transformers,已经使注重力速率提高了4-8倍。
GitHub链接:https://github.com/Dao-AILab/quack/blob/main/media/2025-07-10-membound-sol.md[1]https://x.com/__tensorcore__/status/1943374119208169858[2]https://x.com/tri_dao/status/1943372100774900056
游戏亮点
1、富厚多彩的修仙玩法
除了作育学生和建设仙门外,游戏还包括了炼丹、炼器、仙田等多种修仙玩法,让玩家体验到修仙的方方面面。
2、自由建设的仙门地产
玩家可以自由摆放修仙宗门的修建,打造属于自己的修仙家园,创立仙门人的理想天下。
3、细腻细腻的游戏画面
游戏的画面细腻细腻,每一个场景都充满了古典美感,让玩家似乎身临其境,感受到修仙之美。
4、社交互动的兴趣
游戏内置富厚的社交系统,玩家可以与其他玩家组成同盟,配合对抗强敌,体验多人相助的兴趣,增添了游戏的可玩性和意见意义性。
游戏评测
1、游戏玩法富厚,内容深度十足,给玩家带来了极佳的游戏体验。2、画面细腻,场景设计唯美,让玩家陶醉其中,感受到了修仙天下的奇幻美感。
3、挂机系统的设置知心适用,解放了玩家的双手,让玩家更轻松地享受游戏兴趣。
4、学生个性化塑造突出,每个学生都有自己奇异的故事和特点,增添了游戏的意见意义性和可玩性。
更新日志
v7.853.822324版本
1.1调解问鼎苍穹席位赛的防守阵容设置规则,现在任何时间都可以调解防守阵容
1.2优化天道树意会道果时道果数目缺乏的获取提醒,现在会自动翻开道果宝箱,利便祖师快捷获取
1.3优化新增仙法问道投资运动的购置提醒,现在休赛期购置投资时,若是无法拿满奖励则会有二次确认提醒
1.4修复一连炼制同种丹药时,炼制质料的数目显示异常的过失
下载地点
- 电脑版
- /安卓版
- 外地下载通道:
- 仅下载APK文件
同类游戏
网友谈论
共0条谈论类似游戏
-
斯嘉丽·约翰逊露胸裸体 v6.4.11 休闲益智 / 7.1G
-
巜一边亲一边摸下奶韩国电脑版下载「含模拟器」 模拟谋划 / 428.12MB
-
100%胸片曝光率免费无病毒PC端下载 角色饰演 / 8.62G
-
!一级A片处破外女 v9.7.2 模拟谋划 / 2.33MB
-
丝❌❌❌流水大叫电视版下载 角色饰演 / 2.9G
精彩发明
换一换精品推荐
-
91人成色情网www白丝 v8.0.7 谋划养成 / 306.8MB
审查 -
亲嘴视频脱了衣服大全视频 v7.7.15 谋划养成 / 2.94MB
审查 -
❌蜜❌桃❌黄❌片AV游戏 v5.7.17 谋划养成 / 1.48G
审查 -
隐私㊙️黄www网站 v9.9.14 谋划养成 / 1.32MB
审查 -
别c我了~C烂了 v8.4.13 谋划养成 / 1.98MB
审查