3 个版本 (破坏性更新)
0.3.0 | 2024年6月22日 |
---|---|
0.2.0 | 2024年6月15日 |
0.1.0 | 2024年6月13日 |
#213 in 硬件支持
460KB
14K SLoC
xrt-rs
xrt-rs 提供了对 Xilinx 运行时 (XRT) C-API 的封装,用于 AMD FPGAs / AI 引擎及其主机之间的通信。该库提供了一个薄的封装(称为 native),它简单地将 C API 转换为安全的 Rust,以及一个更抽象的层(称为 simple),它会自动处理细节,为简单应用程序提供更易于使用的接口。中间目标是编译时读取 xclbin 文件,利用 Rust 类型检查来使用 API。
安装
要安装,只需将此仓库或 crate 作为依赖项添加到您的 Cargo.toml
。
如果链接失败,请将 XRT 库添加到您的库路径
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/xilinx/xrt/lib"
or
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$XILINX_XRT"
使用
可以从 xrt::native::*
使用原生 API。有一个所有相关对象的封装:设备、内核、运行、缓冲区。可以使用更简单的 API 从 xrt::managed::*
。查看测试以获取使用示例。
测试
当前测试无法并行运行。
如果您想在软件仿真中运行它们,需要设置常规环境标志。
XCL_EMULATION_MODE=sw_emu cargo test -- --test-threads=1
待办事项
- 更详细的错误报告
- 解析内部错误代码
- 更复杂的自定义错误层次结构
- 实现 Error trait
- 抽象层
- 性能考虑
- 缓冲区重用
- 详细测试
- 找到一种使用 xrt::ip(只能从 CPP API 访问)的方法
无运行时依赖
~0–2MB
~39K SLoC