写点什么

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

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

关注

评论

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

远程探视正在取代亲自探视

anyRTC开发者

ios android 音视频 WebRTC 直播

Docker 容器健康检查

K8sCat

Docker Dockerfile HEALTHCHECK

突破存储瓶颈,打通高性能计算的“最后一公里“

高性能 存储

架构师week9 总结

Geek_xq

春节无法线下社交聚会,来线上“一起X”共享体验

ZEGO即构

从Gartner 最新“客户之选”报告,看国内外RPA的差异化竞争

王吉伟频道

RPA SaaS 机器人流程自动化 Gartner

借朋友钱后,对方不还怎么办?

石云升

28天写作 借钱

全网最全!彻底弄透Java处理GMT/UTC日期时间

YourBatman

GMT UTC JSR310 TimeZone ZoneId

Python实用代码-无限级分类树状结构生成算法

穿甲兵

Python 算法

响应号召,开始14天的居家隔离 | 视频号 28 天 (14)

赵新龙

28天写作

CWE 4.3:强化你的数据自我保护能力

华为云开发者联盟

网络安全 安全 数据保护 cwe gdpr

SpringCloud 从入门到精通14---OpenFeign服务调用

Felix

JavaScript对象

hao-kuai

JavaScript 继承 原型 原型链

一个不兼容的 JS 方法,让你的网站发生崩溃

老魚

JavaScript 网站 程序猿 移动端

17家国产数据库厂商的2020年度事件大盘点:项目签约与验收、新版本发布等

墨天轮

数据库 国产化

Soul 源码阅读 01|数据同步

哼干嘛

Java Soul网关

数据库周刊56丨17家数据库厂商2020大事件盘点;第十届PG中国技术大会圆满举办;pg wal目录膨胀异常分析;Oracle RAC等待事件总结;云和恩墨技术通讯2020年刊特辑……

墨天轮

MySQL 数据库 oracle postgre

架构师week9 作业

Geek_xq

创造高效能源管理方案,3D 可视化技术成为进展新思路

一只数据鲸鱼

物联网 数据可视化 3D可视化 绿色能源 智慧能源

六步带你完成博流wifi模组对接华为云流程

华为云开发者联盟

网络 华为云 sdk 博流 wifi模组

DDD分层架构最佳实践

Barry的异想世界

Spring Boot DDD 架构设计 领域驱动设计DDD

合约交易软件系统APP开发案例

系统开发

存币生息钱包APP系统开发|存币生息钱包软件开发

系统开发

盘点12个Python数据可视化库,通吃任何领域

博文视点Broadview

Materialize MySQL引擎:MySQL到Click House的高速公路

华为云开发者联盟

MySQL 数据 Clickhouse 存储 materialize

云课堂开发实践:白板教程

拍乐云Pano

音视频 在线教育 RTC 互动白板 在线白板

突破开源Redis的内存限制,存算分离的GaussDB到底有多能“装”?

华为云开发者联盟

redis 存储 华为云 GaussDB 存算分离

Apay矿机系统开发

v16629866266

【小菜学网络】交换机与MAC地址学习

fasionchan

网络编程 网络协议 TCP/IP 交换机

JavaScript函数

hao-kuai

JavaScript 闭包 Function 箭头函数

2021年国产数据库名录和产品信息一览

墨天轮

数据库 大数据 程序员 运维 SQL优化

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