写点什么

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

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

关注

评论

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

面阿里P7,竟问这么简单的题目?

Java架构师迁哥

现在已经卷到需要问三色标记了吗?

艾小仙

论证:iOS安全性,为什么需要审核?

37手游iOS技术运营团队

ios SIP Sandbox iOS Developer ios安全

从零开始学习ThingJS之创建App对象

ThingJS数字孪生引擎

可视化 3D可视化 数字孪生

MPP大规模并行处理架构详解

五分钟学大数据

大数据 MPP 5月日更

获5项大奖,发布《云计算开放应用架构标准》,阿里云持续领航云原生

阿里巴巴中间件

云计算 最佳实践 云原生 案例 白皮书

如何评估 Serverless 服务能力?这份报告给出了 40 条标准

Serverless Devs

云计算 云原生 Forrester Wave #Serverless

🔎【Java源码探索】深入浅出的分析HashMap(JDK8)

洛神灬殇

Java 源码 源码分析 hashmap 5月日更

Fabric | 自动化神器

Python研究所

签约计划

牛x运维常用的工具系列-1

运维研习社

运维 工具分享 5月日更

活动预告 _ 即构×火山引擎:泛娱乐社交音视频技术实践沙龙

ZEGO即构

工业4.0加速实现“数物相合”,可视化工厂节省时效高达85%

一只数据鲸鱼

人工智能 数据可视化 工业互联网 智慧工厂 智能生产

走向机器智能时代:移动机器人的困局与创新

晨山资本

机器人 移动机器人 AMR

1小时内被全网疯转 29.8w 次,最终被所有大V协力封杀!

Java架构师迁哥

公安局重点人员研判分析系统解决方案

Vue-1-初识

Python研究所

签约计划

MeterSphere | 超好用的开源测试平台

Python研究所

签约计划

脉脉3小时转发65w次!这份Java面试宝典发生了什么?

Java架构师迁哥

获得业内一致好评!华山版Java性能优化全栈手册“登场”

Java架构追梦

Java 阿里巴巴 架构 性能优化 华山版

答应我,别再学Swing框架了好吗?

北游学Java

Java spring swing

我厂与张家港市达成全面战略合作,共推数据中心和城市智能化转型

百度大脑

数据中心 城市智能化

中国呼叫中心与卓越客服产业峰会,百度智能客服再提行业创新

百度大脑

解决方案 行业创新

百余大企业共赴新文明之约:2021 DEMO WORLD 世界创新峰会拉开帷幕

创业邦

创新

用Python在树莓派上播放音乐

IT蜗壳-Tango

5月日更

服务可达,达者为先,产品发布会嘉宾精彩观点分享!

博睿数据

博睿数据 数据链DNA 服务可达

Bugless 异常监控系统 (iOS端)

37手游iOS技术运营团队

ios iOS Developer 崩溃分析 bugless

编曲新手可以用什么编曲软件?

奈奈的杂社

编曲 编曲宿主 编曲软件

🍃【SpringCloud基础使用】Nacos与Gateway实现动态路由

洛神灬殇

nacos SpringCloud Gateway 5月日更 自定义配置

量化网格策略交易软件,马丁倍投策略机器人

40K成功入职:六年开发终获小米Offer(附面经+面试题+答案详解)

Java架构师迁哥

ARM和X86云服务器的算力对比

Python研究所

签约计划

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