#emu #glsl #compute #em #computer-vision #emu-glsl

emu_core

一个支持跨平台和以 SPIR-V 为输入的低级 GPGPU 计算库

2 个版本

0.1.1 2020 年 4 月 9 日
0.1.0 2020 年 4 月 9 日

#377渲染

每月 24 次下载

MIT 许可证

120KB
1.5K SLoC

要开始使用 Emu,请查看 仓库文档 以获取信息。


lib.rs:

emu_core 是一个作为 WebGPU 之上的计算抽象库。尽管它的名字是 WebGPU,但 WebGPU 允许 Emu 支持大多数平台(通过 Vulkan、Metal、DX)并最终甚至可以支持 Web(通过 WebAssembly - 支持此功能的 API 变化应该是最小的)。

有关如何将 Emu 添加到 Rust 项目的说明,请参阅 crates.io 上的 crate 以及 示例,了解如何使用 Emu。以下链接提供了 Emu 的构建块文档。

请注意,Devicepool 是 Emu 的最低级构建模块,因此您可以使用 Devicepool 或 Emu 的其余部分。然而,在实际应用中,您可能两者都会用到。您将使用 Emu 的其余部分来构建大部分应用程序/库,然后在需要与底层 WebGPU 数据(可能是要混合图形与计算)结构或更精细地控制某些参数时,才降级到低级的 Device-和-pool 使用。

关于功能,默认情况下关闭了 1 个功能 - glsl-compile。如果您想使用 GlslGlslKernel,应 启用此功能。此功能有一个重要的依赖项 - shaderc。在未来,当基于 Rust 的 GLSL-to-SPIR-V 编译器完成时(有相关工作正在进行),将有一个更简单的纯 Rust 依赖项,但在此之前,您应遵循 此处 的步骤,以确保您要针对的平台将具有 shaderc。当然,如果您真的不想使用 shaderc,您始终可以在编译时 编译您的代码为 SPIR-V,然后使用 SPIR-V 作为 Emu 的输入。

此外,以下是一些可能有助于使用 Emu 的一些基本指南。

依赖项

~6–14MB
~269K SLoC