gpt4 book ai didi

assembly - 如何创建或操作GPU汇编器?

转载 作者:行者123 更新时间:2023-12-02 13:32:21 25 4
gpt4 key购买 nike

是否有人有创建/操作 GPU 机器代码(可能是在运行时)的经验?

我有兴趣修改 GPU 汇编代码,可能是在运行时以最小的开销修改。具体来说,我对基于汇编器的遗传编程感兴趣。

我知道 ATI 已经为他们的一些卡发布了 ISA,并且 nvidia 最近为旧卡发布了 CUDA 反汇编程序,但我不确定是否可以在运行时甚至事先修改内存中的指令。

这可能吗?欢迎提供任何相关信息。

最佳答案

在 CUDA 驱动程序 API 中,module management functions允许应用程序在运行时加载“模块”,它(大致)是 PTX 或 cubin 文件。 PTX 是中间语言,而 cubin 是已编译的指令集。 cuModuleLoadData()cuModuleLoadDataEx() 似乎能够从 RAM 中的指针“加载”模块,这意味着不需要实际文件。

所以你的问题似乎是:如何以编程方式在 RAM 中构建 cubin 模块?据我所知,NVIDIA从未公布过其硬件实际理解的指令的详细信息。然而,有一个独立的开源包,名为 decuda其中包括“cudasm”,这是“旧版”NVIDIA GPU 所理解的汇编程序(“旧版”= GeForce 8xxx 和 9xxx)。我不知道集成到更广泛的应用程序中会有多容易;它是用 Python 编写的。

较新的 NVIDIA GPU 使用不同的指令集(有多少不同,我不知道),因此旧 GPU 的 cubin(NVIDIA/CUDA 术语中的“计算能力 1.x”)可能无法在最新的 GPU 上工作(计算能力 2.x,即“Fermi 架构”,例如 GTX 480)。这就是为什么 PTX 通常是首选的原因:给定的 PTX 文件将可以跨代 GPU 移植。

关于assembly - 如何创建或操作GPU汇编器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4660974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com