我找不到 Rust-SIMD 的工作示例。我能找到的最接近的是这个。调整后变成:
#![feature(core)]
#![feature(portable_simd)]
use std::simd::f32x4;
fn main() {
let x = f32x4(1.0, 1.0, 1.0, 1.0);
}
但货物仍投诉
error[E0423]: expected function, found type alias `f32x4`
--> src/main.rs:7:13
|
7 | let x = f32x4(1.0, 1.0, 1.0, 1.0);
| ^^^^^
|
= note: can't use a type alias as a constructor
在建造过程中。
如何让这个简单的示例发挥作用?
Cargo.toml
:
[package]
name = "rust-simd"
version = "0.1.0"
edition = "2021"
[dependencies]
我已经打开了
nightly
:rustup default nightly
。
#![feature(portable_simd)]
应该位于顶部
包的主文件,例如主要.rs.
正如您已经提到的:
rustup default nightly
然后在您使用 simd 的文件中,您需要 这个:
use std::simd::prelude::*;
然后 Simd::from_array 方法需要一个数组 [f32; N_VEC] 其中 N_VEC 是范围 [1, 64] 内的 2 次方常数
例如:
const N_VEC: usize = 16;
let a:[f32; N_VEC] = [1.0f32; N_VEC];
let a_simd: Simd<f32, N_VEC> = Simd::from_array(a);