色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

使用Brahma在GPU上執(zhí)行LINQ

Brahma是一個用于并行計算的開源庫,它由C#編寫并支持在多種處理器上運行。目前,Brahma僅包含一個圖形處理器(GPU)模塊,但是它的模塊化結(jié)構(gòu)可以支持更多種類的處理器。使用Brahma,同一個C#方法中的語句可以同時運行在CPU和GPU上,而不需要額外的代碼。

Brahma通過將LINQ語句轉(zhuǎn)換成目標(biāo)處理器代碼來執(zhí)行并行計算,所生成的代碼會跟據(jù)目標(biāo)處理器的不同而不同。例如針對DirectX會生成High Level Shading Language,而針對OpenGL則會生成OpenGL Shading Language。為了提高性能,LINQ查詢僅被編譯一次,然后根據(jù)需要多次運行

下面的代碼會并行地將一個數(shù)組的元素都乘以2:

// 創(chuàng)建計算對象
var computationProvider = new ComputationProvider();

// 創(chuàng)建并行數(shù)組,并填充數(shù)據(jù)
var data = new DataParallelArray(computationProvider,
new
[] { 0f, 1f, 2f, 3f, 4f, 5f, 6f });

// 編譯LINQ查詢
CompiledQuery query
= computationProvider.Compile>
(
d
=> from value in d
select value * 2f
);

// 在數(shù)據(jù)上執(zhí)行查詢
IQueryable result
= computationProvider.Run(query, data);

// 打印結(jié)果
foreach (
float value in result)
Console.WriteLine(result
[i]);

// 釋放資源
computationProvider.Dispose();
data.Dispose();
result.Dispose();

NET技術(shù)使用Brahma在GPU上執(zhí)行LINQ,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 静海县| 泉州市| 习水县| 蕲春县| 井冈山市| 新余市| 游戏| 卫辉市| 巨鹿县| 广德县| 来凤县| 美姑县| 甘洛县| 田阳县| 酉阳| 巩留县| 许昌市| 静安区| 安庆市| 额尔古纳市| 威宁| 甘孜县| 绍兴县| 迁安市| 雅安市| 调兵山市| 大渡口区| 桂阳县| 花莲市| 沙坪坝区| 淮安市| 凤凰县| 屏东县| 河北区| 柯坪县| 义乌市| 玉龙| 马关县| 沂水县| 喀喇沁旗| 行唐县|