写点什么

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

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

关注

评论

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

国外低代码平台趟过那些坑,对国内低代码企业有哪些启示?

DT极客

智慧社区管理平台建设,智慧平安小区整体解决方案

t13823115967

智慧社区安防系统平台开发

Linux进程知识干货|收藏

赖猫

c++ Linux 后台开发 运维

如何防止短信验证码接口被恶意调用攻击?

香芋味的猫丶

短信 短信防刷 接口安全 验证码

OpenKruise 2021 规划曝光:More than workloads

阿里巴巴云原生

阿里云 开源 容器 云原生 调度器

漫画 | 带你领略前端发展史的江湖恩怨情仇

苏南

程序员 大前端 漫画 时代发展

智慧公安防控管理平台搭建,重点人员管控系统解决方案

t13823115967

智慧公安

区块链数字货币交易所开发的简介

对冲基金的子基金模式vs集中管理

9527

2020年11期券商App行情刷新及交易体验评测报告

博睿数据

APM 数据 AIOPS 证券

7 天开发后台系统技术小结

老魚

程序员 全栈 建站

云原生2.0时代,华为云DevOps立体运维实践

华为云开发者联盟

DevOps 运维 云原生 华为云

区块链钱包开发的核心优势

区块链app开发要多少钱?如何根据项目需求了解价格?

千里公路建设尽收眼底,3D可视化监测管养运,领导都惊呆了

一只数据鲸鱼

物联网 数据可视化 3D可视化 公路建设 智慧交通

Flink SQL 实战:双流 join 场景应用

Apache Flink

flink 流计算

程序员修炼之路:你该知道的 7 个必经阶段

阿里巴巴云原生

阿里云 程序员 云原生 自我思考 成长笔记

数字货币交易所开发的功能与特点

这道面试题,出错率90%

田维常

面试

LINUX SHELL脚本攻略

田维常

软件测试--中间件介绍

测试人生路

软件测试 中间件

区块链钱包开发的功能与特点

深度解析!滴滴内部开源Spring IoC和AOP源码小册

Java架构追梦

Java spring 架构 aop ioc

敏捷团队的质量保障赋能

BY林子

质量保障 质量赋能 敏捷测试

电商平台如何激发内容生态

马踏飞机747

内容 内容分发网络 电商

纵观 ActiveX 平台的兴衰史,看开发控件的技术演变

葡萄城技术团队

SpreadJS activex

我参与阿里巴巴 ASoC-Seata 的一些感悟

阿里巴巴云原生

阿里云 开发者 云原生 感悟 seata

有没有听说过通达快递?

escray

极客时间 极客大学 课程作业 大作业 架构师训练营第 1 期

Python的GIL

yunson

Python GIL

获奖名单|七日更挑战成功!

InfoQ写作社区官方

奖品 七日更 热门活动

四年三次获奖,PostgreSQL再度荣获“年度数据库”桂冠!

PostgreSQLChina

数据库 postgresql 开源

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