写点什么

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

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

关注

评论

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

区块链与AI、大数据等技术融合,将带来哪些产业变革?

CECBC

柯桥PS培训到兴德教育!零基础开始辅导!

Geek_196d9f

filecoin靠谱吗?filecoin合不合法?

Filecoin ipfs挖矿 fil挖矿

万字图文丨最全的Java继承解读

华为云开发者联盟

Java 开发 代码 继承

智慧海洋三维可视化,科技运维助工业物联网一臂之力

一只数据鲸鱼

数据可视化 3D可视化 智慧工业 海上作业

绍兴服装设计培训到兴德教育!

Geek_196d9f

TY短视频系统APP开发介绍

云具匠心在宜宾 浪潮云亮相第二届中国国际智能终端产业发展大会

为什么要学习网络协议?

学无止境的阿奔

c++ Linux TCP/IP 网络通信协议 网络协议栈

软件开发的22条黄金法则

Zhendong

程序员 开发

绍兴柯桥CAD制图培训到兴德教育

Geek_196d9f

新思科技凭借Coverity Scan帮助NGINX确保代码质量和安全

InfoQ_434670063458

新思科技 软件安全 Coverity 静态代码分析

Flink Runtime架构

丛培欣

flink

欧洲杯上链,区块链语境下的数字化有什么不一样?

CECBC

Redisson 分布式锁源码 09:RedLock 红锁的故事

程序员小航

Java 源码 分布式锁 redisson 红锁

hdfs 的集群间拷贝、归档、回收站等功能剖析

大数据技术指南

hdfs 7月日更

互帮侠系统软件开发公司

【kafka实战】分区重分配可能出现的问题和排查问题思路(生产环境实战,干货!!!非常干!!!建议收藏)

石臻臻的杂货铺

Kafk Kafka实战

柯桥淘宝拼多多电商培训到兴德教育!

Geek_196d9f

Hologres揭秘:高性能原生加速MaxCompute核心原理

阿里云大数据AI技术

观天安门升旗纪要

穿过生命散发芬芳

摄影 游记 升旗

趣口袋拼团系统APP开发案例

云计算对比IDC的优势简单说明-行云管家

行云管家

云计算 服务器

搭建 JumpServer 堡垒机管理数万台游戏服务器

学神来啦

云计算 Linux linux运维 运维工程师 运维平台

网络攻防学习笔记 Day72

穿过生命散发芬芳

网络攻防 7月日更

有人说SQL注入已经落后了,请问可以捶他吗???

网络安全学海

运维 网络安全 信息安全 渗透测试 SQL注入

5G+工业互联网 智造驱动新发展

唯一网络

什么是统一语言?

escray

学习 极客时间 6月日更 7月日更 如何落地业务建模

CryptoPlace挖矿APP系统开发简介

在数字经济领域实现更充分更高质量就业的思考

CECBC

面试官:你能讲讲栈和队列吗?我:你礼貌吗?

Ayue、

数据结构

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