写点什么

使用 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:0018567

评论

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

ARTS-week-2

youngitachi

ARTS 打卡计划

mybatis 逆向工程使用姿势不对,把表清空了,心里慌的一比,于是写了个插件。

why技术

Java 源码 mybatis

年龄性别的问题,好像也不是太大问题……

zhoo299

生活 随笔

程序员的晚餐 | 6 月 7 日 豆腐年糕

清远

美食

图解Java垃圾回收算法及详细过程!

攀岩飞鱼

Java JVM 虚拟机 垃圾回收机制

ARTS打卡Week 03

teoking

ios LeetCode

史上最诡异问题,iOS 单例初始化两次,你遇到过吗?

liu_liu

ios 初始化 单例 两次

带你学够浪:Go语言基础系列 - 8分钟学复合类型

程序员柠檬

后端 Go 语言

食堂就餐卡系统设计

大雄

作业1-食堂就餐卡系统设计

A Matt

第一周学习总结

A Matt

极客大学架构师训练营

ARTS-02

NIMO

ARTS 打卡计划 ARTS活动

HBase 常用 Shell 命令手册

Rayjun

Java HBase

第一周总结

andy

第一周总结

ngrok穿越本地服务器,极客大学架构师训练营 第一课总结,John 易筋 ARTS打卡Week 03

John(易筋)

极客时间 极客大学 ngrok

MySQL 笔记(二)日志系统

奈何花开

Java MySQL

架构师训练营练习:食堂就餐卡系统设计

Shawn

架构文档-作业01

ashuai1106

UML

第一周UML作业

吴建中

ARTS 打卡 WEEK3

编程之心

ARTS 打卡计划

公司出了一款新产品,要不要招代理商?

石云升

用户增长 价值网依赖 产品定位 新产品

ARTS-WEEK1

Allen

极客时间 - 架构师训练营 - week1 - 作业2

jjn0703

极客大学架构师训练营

[安利] WSL Linux 子系统,真香!附完整实操

猴哥一一 cium

Docker Linux 推荐 WSL2 Windows 10

SpringBoot整合Quartz实现任务定时

北漂码农有话说

SpringBoot 2

使用 Docker Desktop 中的 Kubernetes

FeiLong

Docker Kubernetes

scala callback hell

HackMSF

编程 最佳实践

面试了 6 轮 Google中国 之后,还是挂了

程序猿石头

面试 谷歌Google 经验分享 面经

软件建模与设计文档

大雄

UML

第一周作业

andy

架构师训练营-学习笔记-第一周

心在飞

极客大学架构师训练营

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