热搜词:

科学家研发大模型新框架, 助力解决RISC-V软件生态瓶颈

算子(Kernel),作为连接硬件与软件的核心软件层,是软件生态中的重要一环。算子优化是旨在根据硬件架构和芯片设计,优化特定程式代码,以尽可能挖掘硬件潜力,提高程序运行速度的工作。

当前算子优化主要依靠专家通过试错法进行手动优化,这一过程不仅耗时,而且需要跨硬件、软件和指令集架构(ISA,InstructionSetArchitecture)的多学科专业专家合作开发,人力和时间成本都十分高昂。对于新兴的ISA架构而言,其配套算子库的性能优化缺口已成为阻碍广泛部署的主要瓶颈。

随着大模型的发展,自动化算子优化领域出现了新范式。大模型驱动的方法利用其生成能力,通过最少的人工指导生成或迭代改进算子实现,已经涌现出了一批科研成果。尤其在CUDA算子优化领域,这一范式已展现出显著潜力——完备的技术文档和成熟的代码库使得现成的大模型能够在部分算子问题上取得超越人类专家的效果。

然而,在RISC-V等新兴架构或指令集上,参考材料的稀缺,限制了这种新兴范式的有效性。

为此,来自香港城市大学的研究人员开展了一项课题,并研发出了一款名为EoK的应用。

首先,EoK通过系统化挖掘成熟开源算子库的开发历史(如Git提交记录),构建结构化的优化“想法”池。每个想法包含通用设计原则和一系列可操作思路,其中包括简明技术描述、示例代码和历史效果评估。这种方法为大模型提供了明确的数据驱动指导,弥补了训练数据中RISC-V参考材料的缺失。

其次,EoK采用基于检索增强生成(RAG,Retrieval-AugmentedGeneration)的并行搜索策略,通过同时沿多个优化方向(由想法池中的不同想法定义)进行并行探索,并结合RISC-V特定的上下文信息(包括ISA手册和硬件配置文件),显著提高了搜索效率和效果。每个想法引导的搜索都根据历史效果加权采样可操作思路,确保优先验证经过实践检验的技术,同时保持探索多样性。

通过这种方法,EoK在80个算子设计任务中实现了中位数1.27倍的加速效果,在几乎所有任务上超越人类专家性能,并将现有大模型方法的性能提升了20%。这些结果表明,将人类经验系统化地融入新兴领域优化过程的可行性,同时也凸显了大模型驱动的自动化算子优化在RISC-V领域的巨大潜力。