写点什么

使用C#来面向GPU编程

2018 年 1 月 01 日

一直以来,我们都在使用 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 年 1 月 01 日 18:0015154

评论

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

微服务架构深度解析与最佳实践 - 第三部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

微服务架构深度解析与最佳实践 - 第四部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

微服务架构深度解析与最佳实践 - 第五部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

黄金思维圈,养成透过现象看本质的能力

非著名程序员

读书笔记 程序员 程序人生 提升认知

Spring cloud 之多种方式限流

Damon

Java 阿里巴巴 Kubernetes 容器 Spr

两边夹的应用二

孙苏勇

算法 两边夹 重排序 函数式接口 Lambda

凡事必先骑上虎背

ikook

学习 态度 方法论

两边夹的应用

孙苏勇

算法 积水问题 两边夹

平均响应1000ms到200ms,PHP和Go那家强?

拖地先生

php 架构 性能优化 后台开发 运维

微服务架构深度解析与最佳实践(全篇汇总)

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

微服务架构深度解析与最佳实践 - 第六部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

程序员职业生涯的八点感想

池建强

程序员 职业

一个独立开发者,他是如何做到月入 20 万的?

非著名程序员

程序员 独立开发者 副业赚钱 开发者 程序人生

求稳不得

孙苏勇

职业 发展 职场

最近看了两本书:The Rules of Life 和 Make Big Happen

泰稳@极客邦科技

创业 团队管理 自我管理

亚马逊云 AWS LightSail 搭建高性能 LNMP 环境并安全部署 Wordpress

小蚂蚁(Snow Hide)

Nginx PHP-FPM Wordpress 部署 SELinux 安全上下文配置 亚马逊云 AWS Lightsail 安全

归去来兮:递归

曲镇

算法

微服务架构深度解析与最佳实践-第一部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

基于RocketMQ实现分布式事务 - 完整示例

清幽之地

Java 分布式事务 RocketMQ 微服务

聊聊:Python

谢烟客

Python 人工智能 编程

你不是迷茫,只是缺乏目标

ikook

学习 身心健康 方法 自我管理

申请鲲鹏920测试机试水+编译nginx

草宝虫

鲲鹏920 centos7 nginx编译 armv8

浅谈数据中台

数据社

大数据 数据中台 数据仓库

一个运营经理人的工作两周年总结

泰稳@极客邦科技

高效工作 身心健康 项目管理 自我管理

【译】Rust 开发者的2019

Michael Yuan

程序员 rust

数据分析师应该了解的数据湖

数据社

大数据 数据仓库 数据湖 数据分析

微服务架构深度解析与最佳实践 - 第七部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

2019 年

贾献华

2020 2019 总结 日历 计划

微服务架构深度解析与最佳实践-第二部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

阿里笔记之数据模型

迹_Jason

大数据

小程序的当下和未来可能 | GMTC.2019深圳站演讲文稿

崔红保

小程序 uni-app

使用C#来面向GPU编程-InfoQ