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

使用Brahma在GPU上執行LINQ

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(computationProvider,
new
[] { 0f, 1f, 2f, 3f, 4f, 5f, 6f });

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

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

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

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

NET技術使用Brahma在GPU上執行LINQ,轉載需保留來源!

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

主站蜘蛛池模板: 余江县| 江阴市| 容城县| 江安县| 依兰县| 海安县| 浦江县| 济南市| 亳州市| 和平区| 洪泽县| 肇庆市| 工布江达县| 天全县| 迁西县| 沙湾县| 威海市| 凌云县| 雅江县| 定安县| 临江市| 平陆县| 新宾| 邓州市| 自贡市| 连城县| 和田县| 灵台县| 建宁县| 平顶山市| 曲周县| 闽清县| 抚州市| 阜南县| 濮阳市| 新巴尔虎右旗| 龙门县| 河东区| 雷山县| 文安县| 彭阳县|