Rust-GPU

面向 GPU 编程的 Rust
授权协议 Apache
开发语言 Rust
所属分类 程序开发、 图形/图像处理
软件类型 开源软件
地区 不详
投 递 者 陆宏扬
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Rust-GPU 是面向 GPU 编程的开源项目,目标是使 Rust 成为 GPU 着色器开发的“一等公民”编程语言和生态系统。

示例

use glam::{Vec3, Vec4, vec2, vec3};

#[spirv(fragment)]
pub fn main(
    #[spirv(frag_coord)] in_frag_coord: &Vec4,
    #[spirv(push_constant)] constants: &ShaderConstants,
    output: &mut Vec4,
) {
    let frag_coord = vec2(in_frag_coord.x, in_frag_coord.y);
    let mut uv = (frag_coord - 0.5 * vec2(constants.width as f32, constants.height as f32))
        / constants.height as f32;
    uv.y = -uv.y;

    let eye_pos = vec3(0.0, 0.0997, 0.2);
    let sun_pos = vec3(0.0, 75.0, -1000.0);
    let dir = get_ray_dir(uv, eye_pos, sun_pos);

    // evaluate Preetham sky model
    let color = sky(dir, sun_pos);

    *output = tonemap(color).extend(1.0)
}

  • rust-gpu v0.1发布,尝试让Rust成为GPU编程的一等语言 纵观游戏开发的历史,离不开GPU编程,其中最为重要的一个概念是Sharder language,即着色器语言。如今主流的着色器语言主要有三种: 基于 OpenGL 的 OpenGL Shading Language,简称 GLSL; 基于 微软DirectX 的 High Level Shading Language,简称 H

  • Rust 1.68发布 新版本发布了,有新的pin!宏在标准库稳定了,其他更新请看详情。 详情: https://blog.rust-lang.org/2023/03/09/Rust-1.68.0.html 利用Rust和GPU以120FPS的速度渲染用户界面 这是zed编辑器的技术推广文,zed开发团队是之前atom编辑器的团队,也是Electron框架的创始团队。不过因为某些原因atom已经宣

  • Evoli: Amethyst官方展示游戏 #game #Amethyst Evoli是一款由Amethyst(紫水晶)制作的进化灵感模拟游戏,目前已经成功完成了2月份制定的MVP规范。 Read More emu: 基于Rust实现的GPU的语言 #opencl Emu是用于GPU编程的高级语言,专门设计用于嵌入Rust代码中。它为编写函数提供了单个过程宏emu!。宏将编译时的函数转换为底层的代

  • C++性能好 C++的指针,非常灵活(不安全)         空指针、指向垃圾内存的野指针、数组越界         像很多语言对这点进行了改进,比方说Golang的指针就是“消毒”了的 C++有很多种编译器,这些编译器差异巨大         GNU的GCC         微软的MSVC         Clang/LLVM 因为编译器的差异性,导致C++的标准推广困难         有些

  • 特征(Trait) 特征(trait)是rust中的概念,类似于其他语言中的接口(interface)。在之前的代码中,我们也多次见过特征的使用,例如 #[derive(Debug)],它在我们定义的类型(struct)上自动派生 Debug 特征,接着可以使用 println!("{:?}", x) 打印这个类型。 特征定义了一个可以被共享的行为,只要实现了特征,你就能使用该行为。 定义特征 如

  • Rust trait简介 内容总结自《The Rust Programing Language》 首先简单说一下泛型:这个基础和C++的模板大概类似,从语法编译层面提供一种接收任意类型的手段,需要知道的是泛型在编译时会进行单态化处理,所以泛型是不会增加运行时负担的。熟悉C++的前提下,泛型应该是看一下就可以很快入门,这里不赘述。 trait定义 Rust通过 trait 以一种抽象的方式定义共享的

  • ?主要是用来处理错误,下面的代码一和代码二等价 代码一: fn read_username_from_file() -> Result<String, io::Error> { let f = File::open("username.txt"); let mut f = match f { Ok(file) => file, Err(e) =>

 相关资料
  • 问题内容: 是否可以用Java进行GPU编程?我的意思是不使用本机库。 当我们切换到GPU时,可以期待多少性能提升? 编辑: 我不是在看游戏编程,而是想做硬核数字运算。 问题答案: 是。 Java3D,LWJGL和JOGL支持GLSL(OpenGL阴影语言)。 编辑: 如果要在GPU上进行与平台无关的通用计算,则可以使用OpenCL。尽管功能集和执行环境千差万别,但该框架使您可以编写将所有处理单元

  • GPU

    TensorFlow 支持 CPU 和 GPU 这两种设备,标识设备的方法为: /cpu:0:机器中的 CPU /gpu:0:机器中的 GPU, 如果你有一个的话. /gpu:1:机器中的第二个 GPU, 以此类推… 记录设备指派情况 通过设置 log_device_placement 选项来记录 operations 和 Tensor 被指派到哪个设备上运行: import tensorflow

  • 我正在尝试创建和训练一个CNN模型。但每次我运行代码时,tensorflow并没有使用GPU,而是使用CPU。我已经安装了tensorflow的最新版本。附上以下详细信息。 在运行时,我得到以下带有警告消息的输出。(平台:VS代码) 2021-07-28 15:35:13.163991: W tenstorflow/core/common_runtime/bfc_allocator.cc:337]

  • CPU VS GPU     关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(图形处理器)。在现代iOS设备中,都有可以运行不同软件的可编程芯片,但是由于历史原因,我们可以说CPU所做的工作都在软件层面,而GPU在硬件层面。     总的来说,我们可以用软件(使用CPU)做任何事情,但是对于图像处理,通常用硬件会更快,因为GPU使用图像对高度并行浮点运算做了优化。由于某些原因,我们想

  • gpu-sentry Flask-based package for monitoring utilisation of nVidia GPUs. Motivation Instead of checking each of your machines with nvidia-smi command, a clientrunning on the machines is sending perio

  • 我我正在学习tenorflow的word2vec。我们买了两个1080i用于gpu的并行处理。安装成功,p2p成功。但是,我试图使用tf.device命令将其分配给gpu('/gpu: 0'),出现以下错误: gpu_device.cc:885发现设备1的属性: 名称:GeForce GTX 1080 Ti 大调: 6小调: 1记忆时钟速率(GHz)1.645 pciBusID0000:66:00