7 个版本

0.1.6 2023年6月7日
0.1.5 2023年6月5日
0.1.2 2023年5月31日

#74模拟器

Download history 4/week @ 2024-04-01

65 每月下载量

MIT/Apache

105KB
3.5K SLoC

ptx-parser

ptx-parser 是一个 no_std Rust 包,用于解析 PTX 文件。PTX 是 NVIDIA GPU 使用的低级并行线程执行虚拟机指令集架构。

安装

安装,请运行

cargo add ptx-parser

计划使用

语法可能会更改。预期将有一个类似以下示例的解析器函数。

use ptx_parser::parse_ptx;

let ptx = "
.version 7.5
.target sm_30
.address_size 64

.visible .entry _Z6kernelPiS_i
{
    .reg .f32   %f<4>;
    .reg .s32   %r<4>;
    .reg .pred  %p<3>;
    .reg .b32   %r4;
    .reg .b64   %rd<3>;

    ld.param.u64    %rd1, [__cudaparm__Z6kernelPiS_i_a];
    ld.param.u64    %rd2, [__cudaparm__Z6kernelPiS_i_b];
    ld.param.u64    %rd3, [__cudaparm__Z6kernelPiS_i_c];
    cvta.to.global.u64  %rd4, %rd1;
    cvta.to.global.u64  %rd5, %rd2;
    cvta.to.global.u64  %rd6, %rd3;
    ld.global.f32   %f1, [%rd4];
    ld.global.f32   %f2, [%rd5];
    ld.global.f32   %f3, [%rd6];
    add.f32     %f4, %f1, %f2;
    add.f32     %f4, %f4, %f3;
    st.global.f32   [%rd4], %f4;
    ret;
}
";

let result = parse_ptx(ptx);
println!("{:?}", result);

许可证

双授权以兼容 Rust 项目。

根据您的选择,许可协议为 Apache 许可协议第 2 版MIT 许可协议

依赖项

~1MB
~20K SLoC