50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

城市的智能进化,汇成数字中国的璀璨银河

脑极体

智慧城市

切片的其他妙用

宇宙之一粟

Go 切片 三周年连更

Qz学算法-数据结构篇(二分查找、删除)

浅辄

三周年连更

如何评价 ChatGPT 回答策略的 ensure only ethical usage 特质

汪子熙

ChatGPT ChatGPT4 三周年连更

2023-04-29:一个序列的 宽度 定义为该序列中最大元素和最小元素的差值。 给你一个整数数组 nums ,返回 nums 的所有非空 子序列 的 宽度之和 由于答案可能非常大,请返回对 109

福大大架构师每日一题

golang 算法 rust 福大大

挑战 30 天学完 Python:Day14 高阶函数

MegaQi

挑战30天学完Python 三周年连更

Matlab实现最优化

Shine

三周年连更

粉丝提问:区块链与大数据开发读研方向怎么选?

千与编程

区块链、 大数据 开源

C++ STL容器和算法:详解和实例演示

小万哥

c++ 容器 算法 后端 stl

Django笔记十九之manager用法介绍

Hunter熊

Python django Manager

极速上手使用Docker,这篇文章就够了!

浅羽技术

Java Docker centos 容器化 三周年连更

我们如何将 Amazon Snowcone 送入轨道

亚马逊云科技 (Amazon Web Services)

通过华为云ECS云服务器搭建安防视频监控平台

DS小龙哥

三周年连更

手撕代码系列(三)

Immerse

JavaScript 前端面试题 手撕代码 ES6-ES12 面试必考

轻松处理pdf文件:Acrobat Pro DC 2023 中文激活版

真大的脸盆

Mac Mac 软件 PDF编辑 pdf编辑工具

CDH安装与部署

乌龟哥哥

三周年连更

挑战 30 天学完 Python:Day15 错误类型

MegaQi

挑战30天学完Python 三周年连更

读书笔记:如何成为某个领域的前1%

老张

读书笔记 方法 写作技巧

爱在日落黄昏时 | 我有话要说

后台技术汇

三周年连更

【Python实战】Python采集代理IP信息

BROKEN

三周年连更

Windows下 IDE工具常见编译错误FAQ

鸿蒙之旅

OpenHarmony 三周年连更

高效理解机器学习

俞凡

机器学习 算法

自动化运维工具一览

穿过生命散发芬芳

自动化运维 三周年连更

Java注解编译期处理AbstractProcessor详解

石臻臻的杂货铺

Java

深入探讨Go语言中Semaphore信号量的机制原理

Jack

《底层逻辑2:理解商业世界的本质》

石云升

读书笔记 三周年连更

10分钟打造基于ChatGPT的Markdown智能文档

俞凡

人工智能

大模型“涌现”的思维链,究竟是一种什么能力?

脑极体

人工智能

火山引擎云原生数据仓库ByteHouse技术白皮书V1.0 (Ⅵ)

字节跳动数据平台

大数据 数据仓库 云原生 元数据 企业号 4 月 PK 榜

Matlab实现机器学习

袁袁袁袁满

三周年连更

云资源提供技术

阿泽🧸

云资源 三周年连更

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