Emu —— 用于编程 GPU 的高级语言
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]; } } }

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
每日一博 | Linux Kernel 调度器的过去,现在和未来
引言 Linux Kernel Development 一书中,关于 Linux 的进程调度器并没有讲解的很全面,只是提到了 CFS 调度器的基本思想和一些实现细节;并没有 Linux 早期的调度器介绍,以及最近这些年新增的在内核源码树外维护的调度器思想。所以在经过一番搜寻后,看到了这篇论文 A complete guide to Linux process scheduling,对 Linux 的调度器历史进行了回顾,并且相对细致地讲解了 CFS 调度器。整体来说,虽然比较啰嗦,但是对于想要知道更多细节的我来说非常适合,所以就有了翻译它的冲动。当然,在学习过程也参考了其它论文。下面开启学习之旅吧,如有任何问题,欢迎指正~ 需要注意的是,在 Linux 中,线程和进程都是由同一个结构体(task_struct,即任务描述符)表示的,所以文中会交叉使用进程、线程和任务等术语,可以将它们视作同义词。当然,也可以将线程(任务)称为最小执行单元。但 Linux 的调度算法(如 CFS)可以应用更加通用的调度单元(如线程、cgroup、用户等)。总之,不要过度纠结这里的术语,重要的是了解每种调度...
-
下一篇
GitHub 披露 Linux 漏洞详情,已影响众多 Linux 发行版
本周,GitHub 披露了一个容易被利用的 Linux 漏洞的细节,该漏洞可被用来将目标系统的用户权限提升为 root 权限。 该漏洞被归类为高风险性,并被标记为 CVE-2021-3560,影响到许多 Linux 发行版中默认存在的授权服务 polkit。 这个安全漏洞是由 GitHub 安全实验室的 Kevin Backhouse 发现的。该研究人员发表了一篇博客文章,详细介绍了他的发现,以及一段展示该漏洞的视频。 本地、无权限的攻击者只需在终端执行几个命令,就可以利用该漏洞将权限提升到 root。该漏洞目前已被证实影响到红帽企业版 Linux、Fedora、Debian 和 Ubuntu 的一些版本。CVE-2021-3560 的补丁已于 6 月 3 日发布。 Backhouse 表示:"我发现的这个漏洞是相当古老的,它是七年前在提交 bfa5036 中引入的,并首次随 polkit 0.113 版本一同出现。" 受攻击的组件 polkit,是一个系统服务,旨在控制整个系统的权限,为非特权进程提供一个与特权进程通信的方式。Backhouse 在博客中将其描述为一个扮演法官角色的服...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7,8上快速安装Gitea,搭建Git服务器