krnl v0.1.0: 安全, 可移植, 高性能计算内核
一个安全,可移植且高兴能的计算内核。为了autograph
开发的。
- 与 CUDA 和 OpenCL 类似的功能。
- 支持 GPU 和其他 Vulkan 1.2设备。
- 通过 MoltenVK 支持 MacOS/iOS。
- 内核是内联编写的,完全使用 Rust。
- 主机上的缓冲区可以使用 Vecs 和slices访问。
文章链接,https://www.reddit.com/r/rust/comments/1bra5ep/krnl_v010_safe_portable_high_performance_compute/
Github 链接,https://github.com/charles-r-earp/krnl
autograph v0.2.0: 一个rust的机器学习库
用 krnl 实现的 GPGPU 内核。实现一个神经网络的示例:
#[derive(Layer, Forward)] #[autograph(forward(Variable4, Output=Variable2))] struct LeNet5 { conv1: Conv2, relu1: Relu, pool1: MaxPool2, conv2: Conv2, relu2: Relu, pool2: MaxPool2, flatten: Flatten, dense1: Dense, relu3: Relu, dense2: Dense, relu4: Relu, dense3: Dense, }
impl LeNet5 {
fn new(device: Device, scalar_type: ScalarType) -> Result<Self> {
let conv1 = Conv2::builder()
.device(device.clone())
.scalar_type(scalar_type)
.inputs(1)
.outputs(6)
.filter([5, 5])
.build()?;
let relu1 = Relu;
let pool1 = MaxPool2::builder().filter([2, 2]).build();
let conv2 = Conv2::builder()
.device(device.clone())
.scalar_type(scalar_type)
.inputs(6)
.outputs(16)
.filter([5, 5])
.build()?;
let relu2 = Relu;
let pool2 = MaxPool2::builder().filter([2, 2]).build();
let flatten = Flatten;
let dense1 = Dense::builder()
.device(device.clone())
.scalar_type(scalar_type)
.inputs(16 * 4 * 4)
.outputs(128)
.build()?;
let relu3 = Relu;
let dense2 = Dense::builder()
.device(device.clone())
.scalar_type(scalar_type)
.inputs(128)
.outputs(84)
.build()?;
let relu4 = Relu;
let dense3 = Dense::builder()
.device(device.clone())
.scalar_type(scalar_type)
.inputs(84)
.outputs(10)
.bias(true)
.build()?;
Ok(Self {
conv1,
relu1,
pool1,
conv2,
relu2,
pool2,
flatten,
dense1,
relu3,
dense2,
relu4,
dense3,
})
}
}
let mut model = LeNet5::new(device.clone(), ScalarType::F32)?;
model.init_parameter_grads()?;
let y = model.forward(x)?;
let loss = y.cross_entropy_loss(t)?;
loss.backward()?;
model.update(learning_rate, &optimizer)?;
文章链接,https://www.reddit.com/r/rust/comments/1bra88r/autograph_v020_a_machine_learning_library_for_rust/
Github 链接,https://github.com/charles-r-earp/autograph
str0m 0.5.0 released
我们很高兴地宣布str0m 的0.5.0版本。这个版本是 str0m 日益成熟的证明,包含内部代码改进、 bug 修复和性能改进。
非常感谢来自社区的所有贡献者
文章链接,https://www.reddit.com/r/rust/comments/1bquf2v/str0m_version_050_has_been_released/
Github 链接,https://crates.io/crates/str0m