zoukankan      html  css  js  c++  java
  • 使用GPU.NET针对GPU编程

    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

  • 相关阅读:
    【win10系统问题】远程桌面登录一次后,第二次登录看不到用户名和密码输入框
    如何更改Arcmap里经纬度小数点后面的位数?
    腾讯视频qlv格式转换MP4普通视频方法
    kettle_Spoon 修改共享DB连接带汉字引发的错误
    AutoCAD2015激活码和密钥
    SQL获取本周,上周,本月,上月第一天和最后一天[注:本周从周一到周天]
    SQL语句 不足位数补0
    c# winform 服务器提交了协议冲突. Section=ResponseStatusLine
    java.net.ProtocolException: Server redirected too many times
    MarkDown空格缩进的方法
  • 原文地址:https://www.cnblogs.com/bmate/p/1908718.html
Copyright © 2011-2022 走看看