写点什么

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

评论

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

Cyber Triage 3.14 for Windows - 面向事件响应的数字取证软件

sysin

CST如何在三维里截取部分区域进行仿真

思茂信息

cst CST软件 CST Studio Suite

DNS DDoS攻击:网络世界中的“洪水猛兽”

国科云

华为云中间件助力AI应用智能进化与创新突破

华为云开发者联盟

华为云

企业如何利用SD-WAN优化多云架构网络性能

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN厂商 sd-wan专线

如何选择适合企业的高效财税自动化软件

Techinsight

财税

PVS‑Studio 7.36 for macOS, Linux & Windows - 代码质量安全静态分析

sysin

HyperWorks汽车B-柱网格变形

智造软件

CAE Hypermesh hyperworks

排行榜的5种实现方案!

不在线第一只蜗牛

架构 开发

酷睿、锐炫加持!英特尔点亮智慧零售新场景

E科讯

数字化与信息化的关系

优秀

数字化 信息化

YashanDB 知识库|YCP 单机部署如何离线升级?一文详解 -rpc 升级流程

数据库砖家

数据库

教育部加快推进教育数字化,2024年来国家级人工智能教育政策合集

ModelWhale

VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS NVMe 驱动特殊定制版 (集成驱动版)

sysin

esxi

YashanDB|如何优化跑批性能?这些参数配置值得关注

数据库砖家

数据库

YashanDB 知识库|YCP 高可用离线升级指南(以 23.2.4.100 升级至 23.2.11.100 为例)

数据库砖家

数据库

淘宝天猫商品详情API接口(附代码示例)

tbapi

淘宝商品详情接口 淘宝API 天猫商品详情接口

Dell OpenManage Enterprise 4.4 - Dell 服务器、存储和网络设备集中管理软件

sysin

dell

YashanDB 知识库|UNDO 表空间一直在涨?查原因 + 给方案,一文说明白

数据库砖家

数据库

YashanDB 知识库|MySQL 的 GROUP BY 语句在崖山报错?问题出在这个标准!

数据库砖家

数据库

“工作区”升级为“磁盘”、数据集统计概览优化|ModelWhale 版本更新

ModelWhale

大模型

图片导航组件 | 纯血鸿蒙组件库AUI

华哥的全栈次元舱

HarmonyOS 开发语言 纯血鸿蒙 ArkUI / eTS 鸿蒙组件库AUI

MCP 如何构建企业级数据分析 Agent?

阿里巴巴云原生

阿里云 云原生 函数计算

YashanDB 知识库|yasql 报 YASQL-00021:单行字符超 4000.如何绕过限制?

数据库砖家

数据库

YashanDB|用 yasldr 批量导入时报内存不足?一文搞懂 bulkload 内存分配逻辑

数据库砖家

数据库

网易游戏 Flink 云原生实践

Apache Flink

大数据 flink 云原生

YashanDB 知识库|Oracle 里的大整数插入正常,换到崖山却报错?问题可能出在字段类型上

数据库砖家

数据库

YashanDB 共享集群实测报告:性能、稳定性、架构三重验证,细节见真章

数据库砖家

数据库

怀进鹏强调高效优化学科布局和专业建设,多所985成立“AI+”新学院

ModelWhale

金贝灯光儿童摄影3大布光方案,解锁专业级童趣写真

科技热闻

JEB Pro v5.29 (macOS, Linux, Windows) - 逆向工程平台

sysin

JEB

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