【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

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

关注

评论

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

☕【Java技术之旅】走进线程池的世界(基础篇)

洛神灬殇

Java 线程 线程池 线程池工作原理 5月日更

据说学会这款数据分析工具,会被各大名企高薪哄抢!

博文视点Broadview

区块链技术如何成为中国数字化转型最新驱动力

CECBC

区块链

数据中心太耗电,送你一个节能神器

华为云开发者联盟

数据中心 节能 电费 NAIE 制冷

深入浅出,Andorid 端屏幕采集技术实践

拍乐云Pano

android 音视频

智能家居商业模式:To C向左,To B向右

不脱发的程序猿

IoT 智能家居 智能家居商业模式

WAVE SUMMIT 2021 深度学习开发者峰会定档5月20日

百度大脑

深度学习 飞桨

“新内容 新交互”全球视频云创新挑战赛复赛启幕

阿里云视频云

音视频

不服不行!腾讯、阿里Android高级面试真题汇总,成功入职阿里

欢喜学安卓

android 程序员 面试 移动开发

个人/团队/企业/组织申请计算机软件著作权的流程

不脱发的程序猿

程序人生 专利 软著申请 计算机软件著作

区块链新基建时代 看欧科云链如何助力数字经济产业升级

CECBC

数字经济

如何防止抄袭PCB电路板

不脱发的程序猿

嵌入式 如何防止抄袭PCB电路板 PCB电路板 硬件开发

零基础学习 NLP-DAY5 - 恶补 Python - 基础 2

Qien Z.

Python if 5月日更

带你彻底搞懂高性能网络模式Reactor 和 Proactor

华为云开发者联盟

reactor Proactor 网络编程模式

区块链技术如何助力构建新能源系统

CECBC

打破固有思维(九)

Changing Lin

python变量、运算符

若尘

变量 运算符 Python编程 5月日更

狗尾续貂之Neutron网络部署架构的第N+1种方式

焱融科技

容器 云原生 高性能 部署 网络架构

有道技术沙龙 | JAVA下午茶

有道技术团队

Java

【音视频专题】音频质量评估方法那些事

Hanson

音视频

两个开源免费的软件Typora和PicGo,成了我写东西的新宠。

彭宏豪95

写作 Typora 图床 5月日更

夯实信任基础 区块链正在成为价值互联网的新代言

CECBC

区块链创新包含基础技术和应用场景两个层面

CECBC

解读SSDB、LevelDB和RocksDB到GaussDB(for Redis)的迁移

华为云开发者联盟

数据仓库 华为云 数据迁移 GaussDB(for Redis) PB级数据库

如何让网络音频或本地音频文件发布到频道中

anyRTC开发者

音视频 WebRTC RTC sdk

“InfoQ 的朋友们-Geek青年说·北京站”即将开讲,快来!

InfoQ写作社区官方

GEEK 话题讨论 InfoQ 的朋友们 热门活动

华为云MCP多云跨云的容器治理与实践

华为云原生团队

开源 容器 云原生 集群 多云管理平台

Serverless:这真的是未来吗?(一)

Serverless Devs

运维 云原生 服务器 #Serverless

综资全生命周期管理助力网络运营更高效

鲸品堂

软件开发生命周期 应用 资源管理

bzz币挖矿软件开发|bzz币挖矿系统APP开发

太现实了!2021年阿里+腾讯+快手offer都已拿到!值得一看

欢喜学安卓

android 程序员 面试 移动开发

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