#ispc #intel #build-dependencies #cargo-build #build-script #cross-compilation #spmd

构建 rispc

为 cargo 构建脚本提供构建时间依赖项,以便调用 Intel 的 ISPC 编译器将静态归档编译成可链接到 rust 代码的格式

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2016 年 5 月 23 日

9#ispc

MIT 许可证

22KB
478 行(不含注释)

这是一个用于编译 Intel SPMD (ispc) 代码的库。

该库旨在用作 build-dependencies 中的条目,并在 dependencies 中添加运行时组件。

[build-dependencies]
rispc = "0.1"

[dependencies]
rispcrt = "0.1"

该包的目的是提供编译 ispc 代码到静态归档所需的实用函数,该归档随后被链接到 Rust 包中。顶级的 compile_library 函数作为一个便捷选项,更高级的配置可以通过 Config 构建器实现。

该包将自动检测交叉编译或其他由 Cargo 设置的环境变量等情况,并相应地构建代码。

示例

使用默认配置

// build.rs
extern crate rispc;

fn main() {
  rispc::compile_library("libmandelbrot.a", &[ "src/mandelbrot.ispc" ]);
}

使用更高级的配置

// build.rs
extern crate rispc;

fn main() {
  rispc::Config::new()
    .file("src/mandelbrot.ispc")
    .define("FOO", Some("bar"))
    .math_lib(rispc::Math::Fast)
    .enable_fast_math(true)
    .addressing(rispc::Addr::A64)
    .compile("libmandelbrot.a");
}

要查看一个完整的工作示例,请参阅仓库中的 rispc-demo 文件夹。

依赖

~3MB
~71K SLoC