用于编程 GPU 的高级语言 Emu

用于编程 GPU 的高级语言 Emu

MIT
Rust
跨平台
2019-06-03
xplanet

Emu 是用于编程 GPU 的高级语言。与其他语言(如 OpenCL 或 Halide)嵌入 C 或 C ++ 不同,Emu 用于嵌入 Rust。它为编写函数提供了单个过程宏。宏将编译时的函数转换为较低级别的代码,以便它们可以在 GPU 上运行。

Emu 还提供了一些旨在使编程 GPU 更易于访问的功能,例如内置数学和物理常量,单元注释和隐式转换。这是一些示例函数:

emu! {
	// more particles
	more_particles(num_particles u32, num_moles u32) u32 {
		return num_particles + num_moles * L;
	}

	// moves particles
	move_particles(global_particles_x [f32], global_particles_y f32, global_particles_z f32) {
		global_particles_z[get_global_id(0)] += 7.3e1 as nm;
		global_particles_x[get_global_id(0)] += 2 as cm;
		global_particles_y[get_global_id(0)] += 6 as cm;
	}
	
	// moves particles in circle
	rotate_particles(global_particles_r [f32]) {
		global_particles_r[get_global_id(0)] += 7.5 * TAU;
	}

	// multiplies 2 matrices
	// n is the dimension of the matrices
	// a and b are the matrices to be multiplied, c is the result
	multiply_matrices(n i32, global_a [f32], global_b [f32], global_c [f32]) {
		// indices of cells to multiply
		let i: i32 = get_global_id(0);
		let j: i32 = get_global_id(1);

		// execute step of multiplication
		for k in 0..n {
			global_c[i * n + j] += global_a[i * n + k] * global_b[k * n + j];
		}
	}
}
的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

Ubuntu16.04引导界面美化(burg)

今天尝试安装了一下Ubuntu16.04后,脑子一热就试了一下引导界面美化(burg)。以前只是看过有这些美化界面操作,却没试过,终于实现了一下。 效果图比自带的grub2好看太多了 burg是基于grub2...

2016/06/25 20:59
2.6K
0
如何使div在任何分辩率的情况下居中

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title> * emu * </title> <SCRIPT> <!-- window.onresize = resetDIV; function resetDIV() { with(...

2013/03/18 16:01
11
0
Burg

sudo add-apt-repository ppa:bean123ch/burg sudo apt-get update sudo apt-get install burg burg-common burg-emu burg-pc burg-themes burg-themes-common 更新到MBR: sudo burg-instal...

2011/05/03 18:33
417
0
OCP题库更新,新版052考试题和答案(22)

22、USER1 grants SELECT, INSERT, and UPDATE privileges on USER1. EMP to USER2. SYS executes this command: SQL> REVOKE UPDATE ON user1.emp FROM user1; What will be the outcome? A...

2018/08/30 10:13
2
0
ALSQL v1.0.0.5

ALSQL v1.0.0.5有以下更改: 修复 1.修复了产品版本编号显示不正确的问题 2.修复了Access连接时不可选.accdb文件的问题 新增 1.增加了查看连接密码的功能 2.增加了从MDB文件获取密码的功能...

2016/05/09 13:36
13
2
传递给Appium服务器以开启相应安卓Automation会话的Capabilities的几点说明

Desired Capabilities是由客户端发送给Appium服务器端的用来告诉服务器去启动哪种我们想要的会话的一套键值对集合。当中也有一些键值对是用来在 自动化的过程中修改服务器端的行为方式的。比...

2015/03/30 10:35
34
0
Android adb 常用命令

adb devices //列出所有的连接设备 adb connect [:] //通过tcp/ip连接,5555是默认端口

2014/06/24 22:40
13
0
PHP SPL笔记

第一部 简介 1. 什么是SPL? SPL是Standard PHP Library(PHP标准库)的缩写。 根据官方定义,它是“a collection of interfaces and classes that are meant to solve standard problems”。...

2013/02/02 00:30
30
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部