写点什么

使用 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:392698
用户头像

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

关注

评论

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

SAP MM SPED输出报错-No authorization for delivery from shipping point US##-之对策

SAP虾客

SAP MM SPED VL31N 公司间STO

【IntelliJ IDEA】连接https报错问题: E230001: Server SSL certificate verification failed:

No8g攻城狮

svn IDEA

学生管理系统

KING

架构实战营 3-4 架构设计后期随堂练习

西山薄凉

「架构实战营」

运维进阶训练营 -W09H

b1a2e1u1u

运维

架构训练营模块三作业

张建闯

架构实战营

spaa 22

黄敏

安卓、iOS、小游戏三端同发?介绍给你一个新方式 - 普洱WebGL

僵尸浩

typescript 小游戏 Unity3D

SDK更新不了问题解决

芯动大师

android hosts SDK 教程

数据库原理及MySQL应用 | 约束

TiAmo

主键约束 数据库· 12月月更

WEB23

Lenyi

网络安全 CTF ctfshow 爆破

架构实战营 3-5 消息队列备选架构随堂练习

西山薄凉

「架构实战营」

架构误区系列10:不合理的分层

agnostic

软件分层

数据可视化图表系列解析——饼图

Data 探险实验室

数据分析 可视化 数据可视化 可视化数据 可视化工具

模块三-外包学生管理系统的架构文档

悟空

学生管理系统架构

WEB21

Lenyi

网络安全 CTF ctfshow 爆破

SRE运维解密-应对过载

董哥的黑板报

微服务 SRE 限流 SRE实践

OpenTelemetry系列 (四)| 如何使用Java Agent来实现无侵入的调用链

骑牛上青山

Java javaagent 调用链 OpenTelemetry 微服务调用链

基于Go的缓存实现

俞凡

架构

Web入门开发【二】

小院里的霍大侠

编程开发 初学者 入门实战 Web入门

Web入门开发【四】

小院里的霍大侠

Web 编程开发 初学者 入门实战

【架构设计】你的类足够“专一”吗

JAVA旭阳

Java 架构

2022-12-25:etcd可以完全替代zookeeper,原因是k8s用的etcd,不用担心不成熟。请问etcd部署在k3s中,yaml如何写?

福大大架构师每日一题

云原生 k8s etcd k3s 福大大

HTTP请求首部字段

穿过生命散发芬芳

HTTP 12月月更

【web 开发基础】PHP 中的预定义数组详解续集 (48)

迷彩

post GET 文件上传 PHP基础 预定义数组

Flink 1.16:Hive SQL 如何平迁到 Flink SQL

Apache Flink

大数据 flink 实时计算

Flink 在米哈游的应用实践

Apache Flink

大数据 flink 实时计算

FFA 2022 主会场 Keynote:Flink Towards Streaming Data Warehouse

Apache Flink

大数据 flink 实时计算

Web入门:CSS下拉图片

小院里的霍大侠

JavaScript Web 初学者 入门者

2022年浪过的那些城市

SAP虾客

杭州 2022年 无锡 东莞 SAP项目

【IntelliJ IDEA】idea 2018版本中没有SVN按钮或者图标的解决方法

No8g攻城狮

svn IDEA git 学习

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