写点什么

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

评论

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

面试题 -- 如何设计一个线程池

秦怀杂货店

线程 线程池 并发

Go- 接口-1

HelloBug

interface Go 语言

Go- 接口-3

HelloBug

interface Go 语言

Redis核心原理与实践--字符串实现原理

binecy

redis 书籍推荐 源码学习

k8s garbage collector源码分析(2)-处理逻辑分析

良凯尔

Kubernetes 源码分析 Kubernetes源码 #Kubernetes#

Python开发篇——添加mysqlclient

吴脑的键客

Python MySQL

惊讶!阿里大佬总结的图解Java小册火了,完整版笔记开放下载

Java~~~

Java 架构 面试 微服务 JVM

阿里技术专家亲码:满干货“Redis核心笔记”,全篇无尿点

Java~~~

Java redis 架构 面试 中间件

双非本科跨专业5面京东,8600小时后收到通知,流下喜悦泪水

Java~~~

Java 架构 面试 微服务 JVM

技术债的前世今生

码猿外

架构设计 技术债 敏捷精益 软件架构治理

【8月书单】

姬翔

9月日更

微信朋友圈高性能架构

Geek_db27b5

架构师实战营 附一作业(按接口隔离原则优化设计无人机引导直升机攻击的类图)

代廉洁

架构实战营

10. 大数据--人工智能的基石

Databri_AI

人工智能

Linux之ssh-agent命令

入门小站

Linux

架构实战营 - 模块二作业

en

「架构实战营」

Neon 支持

Changing Lin

9月日更

万字长文说透分布式锁

多颗糖

redis zookeeper 分布式 分布式锁 etcd

ShardingSphere LogicSQL 的生成探索

源码 ShardingSphere

在线JSON转Csharp工具

入门小站

工具

学生管理系统 - 毕设架构设计

黑鹰

模块2-作业

笑看风雨情

Go- 接口-2

HelloBug

interface Go 语言

Go- 反射

HelloBug

reflect Go 语言

k8s garbage collector源码分析(1)-启动分析

良凯尔

Kubernetes 源码分析 Kubernetes源码 #Kubernetes#

Java + opencv 实现老照片特效滤镜

张音乐

OpenCV 图像处理 9月日更 特效 老照片

奉若神明!阿里技术专家开源ApacheDubbo核心源码笔记

Java~~~

Java spring 架构 面试 dubbo

微信朋友圈高性能架构分析-模块二作业

娜酱

#架构实战营

设计微博系统中”微博评论“的高性能高可用计算架构

架构0期-Bingo

Django 配置夯实,再补充几个配置项,够够的了

梦想橡皮擦

9月日更

架构实战营 微信朋友圈高性能复杂度分析

💤 ZZzz💤

架构实战营

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