7 个版本
0.1.6 | 2023年6月7日 |
---|---|
0.1.5 | 2023年6月5日 |
0.1.2 | 2023年5月31日 |
#74 在 模拟器
65 每月下载量
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