写点什么

使用 Brahma 在 GPU 上执行 LINQ

  • 2010-05-18
  • 本文字数:690 字

    阅读完需:约 2 分钟

Brahma 是一个用于并行计算的开源库,它由 C#编写并支持在多种处理器上运行。目前,Brahma 仅包含一个图形处理器(GPU)模块,但是它的模块化结构可以支持更多种类的处理器。使用 Brahma,同一个 C#方法中的语句可以同时运行在 CPU 和 GPU 上,而不需要额外的代码。

Brahma 通过将 LINQ 语句转换成目标处理器代码来执行并行计算,所生成的代码会跟据目标处理器的不同而不同。例如针对 DirectX 会生成 High Level Shading Language ,而针对 OpenGL 则会生成 OpenGL Shading Language 。为了提高性能,LINQ 查询仅被编译一次,然后根据需要多次运行

下面的代码会并行地将一个数组的元素都乘以 2:

复制代码
// 创建计算对象
var computationProvider = new ComputationProvider();
// 创建并行数组,并填充数据
var data = new DataParallelArray<float>(computationProvider, <br></br> new[] { 0f, 1f, 2f, 3f, 4f, 5f, 6f });<p>// 编译 LINQ 查询 </p><br></br>CompiledQuery query = computationProvider.Compile<dataparallelarray><float>><br></br>(<br></br> d => from value in d<br></br> select value * 2f<br></br>);<p>// 在数据上执行查询 </p><br></br>IQueryable result = computationProvider.Run(query, data);<p>// 打印结果 </p><br></br>foreach (float value in result)<br></br> Console.WriteLine(result[i]);<p>// 释放资源 </p><br></br>computationProvider.Dispose();<br></br>data.Dispose();<br></br>result.Dispose();</float></dataparallelarray></float>

Brahma 的源代码二进制文件遵循 Eclipse Public License 1.0

查看英文原文: LINQ on GPU with Brahma

2010-05-18 00:392815
用户头像

发布了 63 篇内容, 共 27.7 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

这款开源软件绝了!1分钟即可打造了一个”黑客范“终端~

编程菌

Java 编程 程序员 项目 计算机

编辑器看看

strive

编辑器

当面试官问到:《MySQL数据库的锁机制》该如何拿分?

java小李

spring Boot Starter

GitHub标星139K的:“嵌入式Linux系统开发教程”

白亦杨

深度融合,云管理平台助推政府实现“最多跑一次”改革

BoCloud博云

云计算 云管理平台 云管理

技术解码 | GB28181协议简介及实践

腾讯云音视频

腾讯云 ffmpeg 流媒体 视频监控系统

“普通本科Java程序员,如何五年存够80万买房?就靠这选择!”

java小李

java 14

幸福的人在当下就活出了幸福的样子|靠谱点评

无量靠谱

如何借用第三方APM工具, 为移动应用保驾护航

APM

MySQL高频面试题的灵魂拷问

java小李

MySQL

四面字节跳动,终于拿下1-2级offer :Redis+分布式+微服务+算法+网络

Java 程序员 架构 面试 计算机

他是因为什么,能在半年内从菜鸟学生成为大厂收割机?

Java架构师迁哥

FBI 警告称,网络犯罪分子可能以 2021 年东京奥运会为目标!

郑州埃文科技

基于 Java Spring Security 的关注微信公众号即登录的设计与实现ya

哈德韦

spring security 微信公众号 Apache Pulsar SSO

iOS底层面试题(下篇)

程序员 面试 ios开发

万万没想到,阿里巴巴被挂后,还能获得内推名额,五面口碑一举拿下offer

Java 编程 程序员 架构 面试

Git提交信息规范化

admin

git flow git cherry-pick Git Commit git 规范

最新流行的6大优秀DevOps工具

java小李

java 14 puppeteer

详解TCP协议与UDP协议的区别

Linux服务器开发

网络协议 Linux服务器开发 Linux后台开发 TCP协议 UDP协议

使用Docker在无网络环境下搭建深度学习环境

降低“美丽成本”,区块链助力化妆品行业数字化转型

旺链科技

区块链 数字化转型 化妆品行业

被转载10W次的:Java小白系统资料和职业规划路线

java小李

java基础

《MyCat数据库的基础配置及使用》

java小李

java 14 mycat

ipfs矿机最新消息?星际联盟矿机怎么样?

区块链 fil ipfs矿机 星际联盟

架构训练营模块3课后作业-学生管理系统详设文档

喻高咏        

左晖:凭一己之力改变了一个行业

石云升

思维模型 诚信 7月日更

一条SQL语句执行得很慢的原因盘点

北游学Java

Java MySQL

《分享几道高频 Redis 高频面试题,面试不用愁》

java小李

Redis Stream

解决方案| 全民抗“灾”- 实时音视频在应急指挥场景的应用

anyRTC开发者

音视频 WebRTC 指挥调度

数字化成潮流,运维为啥也热了?

ToB行业头条

科技互联网

使用Brahma在GPU上执行LINQ_.NET_Abel Avram_InfoQ精选文章