写点什么

使用 GPU.NET 针对 GPU 编程

  • 2010-12-16
  • 本文字数:1264 字

    阅读完需:约 4 分钟

GPU.NET 是为.NET 开发者提供的、整合在 Visual Studio 2010 中的托管解决方案,它的目标是为 GPU 创建带有增强计算功能的应用程序。

GPU.NET 是为了创建运行在 GPU 上的 HPC.NET 应用程序的托管解决方案。 GPU.NET 为在 Visual Studio 2010 中编写 C#或者 VB.NET 应用程序的开发者提供了智能支持。得到的汇编程序会使用汇编处理器进行预处理,它会向 GPU.NET 运行时中注入引用,从而把汇编程序编译为本地代码,并且管理它在现存 GPU 设备上的运行。 如果没有在系统中找到 GPU 设备,那么程序就会回到 CPU 上运行。 所有 GPU 设备都有设备驱动,因此针对它来编程更合理,这样会比生成 CUDA 或者 OpenGL 的代码更好,因为那还需要用户安装其它的 SDK。

GPU.NET 拥有一个插件的架构,从而支持其它设备,据开发 GPU.NET 的公司 TidePowerd 的 CEO 和共同创始人 Jack Pappas 所说:

我们的运行时对硬件支持使用了插件架构。 在发布的 beta 测试版中,我们只拥有针对具有 nVidia CUDA 能力的硬件的插件,但是我们会与 AMD 协作,创建同样支持他们的硬件的插件(我们会在 beta 测试阶段最后的某个时候提供,但是会在发布 V1.0 之前)。 有了这个基于插件的设计,我们就可以很容易地为现存的基于硬件的加速卡(比方说:IBM Cell,或者给予 FPGA 的卡)添加支持,或者为可用的新硬件(例如:Intel 的“Knight’s Corner”)添加支持。

这种设计对于运行时的另一种重要的意义在于,我们可以让你部署给最终用户的硬件加速代码运行得更快,而只需要对插件做出更新;这样的更新可能会包括缺陷修正、新的设备代码的 JIT 编译器优化,或者对硬件驱动的特定版本中可用的新 API 的支持。 注意到这个更新过程对于开发者和最终用户来说,完全是透明的。

GPU.NET 当前运行在 Windows 上,但是它也会通过 Mono 运行在 Mac 和 Linux 上。 对于 API,Pappas 提到:

使用 GPU.NET 的开发者,需要学习一些 API,然后才能使用这个系统。 其中保留了像 CUDA/OpenCL 的抽象,但是我们已经设计了 API,使其拥有“本地的”.NET 样式和感受,这样,没有 GPU 开发经验的.NET 开发者也可以快速上手,并开始编写拥有 GPU 加速的代码。

例如在 CUDA 中:

int tid = blockDim.x * blockIdx.x + threadIdx.x;

在 C#中,使用 GPU.NET:

int ThreadId = BlockDimension.X * BlockIndex.X + ThreadIndex.X;

我们还没有最终完成会暴露更高等级的功能——像并行要素(与 Thrust 类似)——的 API;在接受一些用户反馈之后,我们会在 beta 测试过程中的某个时候完成它们。

对于许可,Pappas 告诉 InfoQ,GPU.NET 是一个:

商业化的产品,并且按照针对每个开发者的许可来销售;我们还会提供高级的,基于邀请的支持订阅,那是针对有技术问题,或者需要尽快得到缺陷修复的客户。 然而,我们已经开发出一些有用的工具和库,并在构建 GPU.NET 的时候内部使用,我们会在发布 1.0 版本之后的某个时间把它们作为开源项目发布。

他们不打算发布 GPU.NET 的源代码。 当前该产品还处于 Beta 测试阶段,他们计划在本年末或者明年初发布 GPU.NET 1.0。

查看英文原文: Targeting the GPU with GPU.NET

2010-12-16 08:105521
用户头像

发布了 340 篇内容, 共 145.2 次阅读, 收获喜欢 13 次。

关注

评论

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

【YashanDB知识库】druid连接池做断网测试,无法自动重新连接

YashanDB

数据库 yashandb

2025 年以太坊和 Polkadot 生态中有哪些关键进展值得关注?

TechubNews

区块链 以太坊 web3 #Web3 加密市场

Kokoro,一个 82M 参数的超强 TTS 模型;美团、字节领投 3D 生成大模型影眸科技丨 RTE 开发者日报

声网

一文详解 Astherus “Stage 1: Spectra”,开启 DeFi 收益之门

股市老人

解锁电商数据的无限可能:探秘京东商品SKU信息API接口

科普小能手

数据挖掘 电商 京东 运营干货 API 接口

如何玩转TikTok直播?掌握这些关键要点

Ogcloud

TikTok 直播专线 tiktok直播 tiktok直播专线 tiktok直播网络

《CPython Internals》阅读笔记:p118-p150

codists

CPython Internals

快速上手 INFINI Console 的 TopN 指标功能

极限实验室

INFINI Console TopN

【YashanDB知识库】并发update报错YAS-02208 lock conflict in consistent write

YashanDB

数据库 yashandb

【YashanDB知识库】YMP校验从yashandb同步到oracle的数据时,字段timestamp(0)出现不一致

YashanDB

数据库 yashandb

【YashanDB知识库】导入数据时报错:YAS-00008 type convert error:literal does not match format string

YashanDB

数据库 yashandb

【YashanDB知识库】Hive 命令工具insert崖山数据库报错

YashanDB

数据库 yashandb

如何利用1688商品采集API高效获取商品信息:深度解析

代码忍者

1688API接口

什么样的海外直播网络能满足做海外直播要求?

Ogcloud

海外直播专线 海外直播 直播专线 tiktok直播专线 海外直播网络

Univer Go 推出 AI 辅助编写 Univer API 功能

梦数技术团队

JavaScript 开源 Excel 表格 spreadsheet

为什么说预测市场AI Agent项目 Aegis ,将会超越 axibt 的高度?

股市老人

【连载 11】Phaser 类

FunTester

国产分布式数据库的发展历程以及发展难点以OceanBase为例

极客天地

AI口语陪练APP的技术难点

北京木奇移动技术有限公司

AI技术 软件外包公司 AI口语练习

刷力扣的技巧:4个步骤7个关键点,事半功倍,冲进大厂!

王中阳Go

算法 面试题 力扣 大学生就业 求职面试

时序数据库TDengine 3.3.5.0 发布:高并发支持与增量备份功能引领新升级

TDengine

数据库 tdengine 时序数据库

Nginx 可观测性最佳实践

观测云

nginx

前沿洞察:低代码赋能企业数字化转型,解锁打造敏捷组织的底层逻辑

不在线第一只蜗牛

低代码

懒猫微服移植 drawDB 应用

玄兴梦影

NAS 移植应用 懒猫微服应用移植 drawDB 懒猫微服

时序数据库TDengine 2024 年末奖项大盘点,七大奖杯实力出圈!

TDengine

tdengine 时序数据库 数据库·

使用GPU.NET针对GPU编程_.NET_Abel Avram_InfoQ精选文章