写点什么

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

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

关注

评论

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

【数据结构与算法】2道面试真题,带你领略算法思想【附思路、动图、源码】

Dream-Y.ocean

面试 链表 9月月更

这个C4D短片有点辣!热情起舞小金链尽显墨西哥黑帮气质

Renderbus瑞云渲染农场

影视制作 Renderbus瑞云渲染 3D电影制作

研发效能之技术治理&技术治理架构师

laofo

DevOps cicd 研发效能 持续交付 工程效率

读书笔记|择一城以定财富,择一行以定发展

宇宙之一粟

读书笔记 职业 个人感悟 9月月更

跟着卷卷龙一起学Camera--内存池浅析06

卷卷龙

ISP 9月月更

【数据结构与算法】一篇文章带你玩懂 “栈和队列”(增、删、查、改)的实现_【附源码、动图】

Dream-Y.ocean

队列 数据结构与算法 9月月更

【数据结构与算法】粽子树?二叉树_关于堆你不知道的事情

Dream-Y.ocean

栈和队列 9月月更

我也不想学之PHP系列(2)

吉师职业混子

9月月更

【docker】软链接迁移docker存储目录

非晓为骁

Docker 存储 迁移

跟着卷卷龙一起学Camera--内存池浅析04

卷卷龙

ISP 9月月更

车企如何完善车载小程序生态安全

Geek_99967b

小程序

2022-09-27:给定一个棵树, 树上每个节点都有自己的值,记录在数组nums里, 比如nums[4] = 10,表示4号点的值是10, 给定树上的每一条边,记录在二维数组edges里, 比如ed

福大大架构师每日一题

算法 rust 福大大

从东南亚到中东,为什么社交类产品成为游戏出海的突破口?

融云 RongCloud

白皮书 社交网络 出海 社交娱乐

面试突击87:说一下 Spring 事务传播机制?

王磊

Java 面试

【云原生 | 从零开始学Kubernetes】十一、k8s污点、容忍度和pod状态

泡泡

Docker 云计算 云原生 k8s 9月月更

【Python实践】使用Python实时语音控制电脑全局音量

迷彩

人工智能 语音识别 9月月更 控制电脑 语音控制

Python语法之类和对象(1)

芯动大师

Python 9月月更 类与对象

第一模块作业

lsf1227

「架构实战营」

设计消息队列存储消息数据的 MySQL 表格

张立奎

千峰课程网安笔记(1)

吉师职业混子

9月月更

破解windows系统密码

吉师职业混子

9月月更

【编程实践】利用 Python 调用图灵机器人 API 实现实时语音聊天及自动回复

迷彩

Python 实时语音 实时聊天 9月月更

前端工程师在面试时经常被问的闭包到底是什么?我用打包礼物的例子让你秒懂

wljslmz

JavaScript 闭包 9月月更

企业服务中出场率最高的活动目录AD到底是什么?本文带您好好了解一下!

wljslmz

AD 9月月更 活动目录

rust语言写的贪吃蛇游戏

福大大架构师每日一题

rust 贪吃蛇 福大大

【数据结构与算法】“堆”还能这样用_堆的应用

Dream-Y.ocean

面试 9月月更

大模型的禾下乘凉梦,百度自己来做试验田

脑极体

Python之类和对象(2)

芯动大师

属性 9月月更 子类的定义

Python语法之模块和包(1)

芯动大师

9月月更 Python语法 模块的创建

跟着卷卷龙一起学Camera--内存池浅析05

卷卷龙

ISP 9月月更

【数据结构与算法】LeetCode面试真题,带你领略算法思想

Dream-Y.ocean

面试 队列 9月月更

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