10 月 23 - 25 日,QCon 上海站即将召开,现在大会已开始正式报名,可以享受 8 折优惠 了解详情
写点什么

使用 C#来面向 GPU 编程

  • 2018-01-01
  • 本文字数:846 字

    阅读完需:约 3 分钟

一直以来,我们都在使用 NVIDIA 的 CUDA 平台编写通用程序来发挥 NVIDIA GPU 的计算性能优势。尽管 CUDA 支持不同的编程语言,但是编写高性能的代码通常需要使用 C 或者 C++。许多开发者为了编写面向 GPU 的代码,不得不放弃使用他们更喜欢的编程语言。直到最近,C#开发者终于可以摆脱这种困境了。

Altimesh 推出的新编译工具—— Hybridizer ,通过为 C#开发者提供一种新的编译方法来解决这个问题。它将开发者的源代码编译成面向 GPU 的可以运行在 CUDA 平台上的二进制代码。Hybridizer 分为两个版本,旨在满足不同的需求和预算。Hybridizer Essentials 作为 Visual Studio 的一个扩展,对所有用户免费。它能够生成运行在 CUDA 平台上的二进制代码。Hybridizer Software Suite(HSE)是授权软件,提供面向 CUDA 以及其它平台(包括 AVX、AVX2 和 AX512)的编译功能。该软件套件可以生成二进制代码,但是也可以选择生成 CUDA 源代码,使用户能够审核正在编译的内容。

配合 NVIDIA 的 Nsight Visual Studio Edition ,任何一个 Hybridizer 版本都为开发者提供了在 Visual Studio 中编写和调试 C#代码的方法,同时生成的代码会在 NVIDIA GPU 上执行。由于 HSE 以 MSIL(Microsoft Intermediate Language)来运行,因此它能够与现有的项目集成,即使没有这些项目的源代码。这也为同平台的.NET 平台语言 F#和 VB.NET 提供了间接支持。

由于编写面向 CUDA 平台的 C/C++ 代码的目标之一是使性能达到最大化,因此值得比较下 Hybridizer 编译的 C#代码的性能。据 Altimesh 公布,由 C#编译生成的二进制代码达到了手写的面向 CUDA 的 C++ 代码 83% 的性能。根据实际代码情况,可以进一步优化 C#代码,达到与 C++ 等同的性能。

Hybridizer 软件向那些对 CUDA 和 GPU 编程好奇的 C#开发者提供了一种探索这些技术的方法,而且不需要放弃使用他们自己喜欢的技术。示例代码可以在 GitHub 上获取,Hybridizer Essentials Extension 可以在Visual Studio Marketplace 上获取

查看英文原文: Using C# to Target GPUs

感谢罗远航对本文的审校。

2018-01-01 18:0018341

评论

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

还在因 JDK 兼容问题发不同 JAR 包做兼容?MRJAR 了解一下?

android 程序员 移动开发

郭霖说Jetpack新成员:App-Startup一篇就懂

android 程序员 移动开发

阿里、华为、字节跳动,大厂面试算法题

android 程序员 移动开发

金九银十面经分享,1-3年的Android开发工程师看过来(已拿offer)

android 程序员 移动开发

阿里巴巴:-给你一个Demo-你如何快速定位ANR

android 程序员 移动开发

这套Github上10K+star学习笔记,可以帮你搞定95%以上的Android面试

android 程序员 移动开发

迷茫的程序员

android 程序员 移动开发

遭遇技术瓶颈?分享Android 资深架构师的成长之路(技术详细介绍)

android 程序员 移动开发

那匆匆2014年,明明想静静

android 程序员 移动开发

金三银四Android面试的一些感受,附加面试题

android 程序员 移动开发

金九银十跳槽季余温过后,记录以往走过的面试经历

android 程序员 移动开发

阿里技术分享:APP启动提速方法总结

android 程序员 移动开发

资深架构师和你谈谈 Kotlin 的泛型

android 程序员 移动开发

身为一位程序员:你是否思考过自己想成为什么级别的程序员?

android 程序员 移动开发

这是你从未见过的组件库----手写一款女朋友欲罢不能的Android-手绘风格组件

android 程序员 移动开发

架构实战营模块毕业总结

seawolflin

架构实战营

金九银十面经分享,1-3年的Android开发工程师看过来(已拿offer)(1)

android 程序员 移动开发

金九银十,你需要的不仅仅只是大厂面试题,记得把每一次面试当做经验积累!

android 程序员 移动开发

这里有一份史上最详细仿QQ未读消息拖拽粘性效果的实现,快来收藏!

android 程序员 移动开发

跨平台新潮!打脸,Flutter被放弃了?

android 程序员 移动开发

跨进程通讯Binder的onTransact方法一定在binder线程池的binder线程中执行吗?

android 程序员 移动开发

还原腾讯的一场 30K—50K 的 Android 高工面经

android 程序员 移动开发

都2020年了,你竟然还在搞Android开发?我劝你早点认清现实吧

android 程序员 移动开发

超新鲜的字节面经,轻取社招Android开发岗

android 程序员 移动开发

跳槽必备:深挖Android技术

android 程序员 移动开发

数据产品内功-埋点

第519区

数据仓库 数据产品 埋点

那些三十五岁失业的安卓程序员,后来都干什么去了?

android 程序员 移动开发

算法入门-归并排序

ES_her0

11月日更

链表问题不会做?LC狂刷50道链表算法总结出这9道典型题,套路很简单(二

android 程序员 移动开发

TCP/IP中的通信,三次握手是如何工作的

卢卡多多

三次握手 11月日更

阿里面试官:Android面试这些原理都给我讲明白了,最低都是20k起步!

android 程序员 移动开发

使用C#来面向GPU编程_.NET_Jeff Martin_InfoQ精选文章