2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

评论

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

利器 | AppCrawler 自动遍历测试实践(三):动手实操与常见问题汇总

霍格沃兹测试开发学社

软件测试 自动化测试 测试开发

数字藏品系统软件开发

开源直播系统源码

NFT 数字藏品 数字藏品系统软件开发 数字藏品app

软件测试 | 测试开发 | 如何利用 xUnit 框架对测试用例进行维护?

测吧(北京)科技有限公司

软件测试

利器 | REST Assured 实践(二):断言实现

霍格沃兹测试开发学社

软件测试 自动化测试 测试开发

你以为Shell只是命令行?读懂这篇文,给你的工作赋能

霍格沃兹测试开发学社

隐私计算中的算子是个啥?可视化组合配置的算子解决方案了解下

Jessica@数牍

隐私计算 算子 隐私计算性能

程序员交接代码中被植入了恶意删除操作,太狠了!

程序员小毕

Java 程序员 面试 程序人生 码农

一文彻底理解 Cookie、Session、Token

霍格沃兹测试开发学社

软件测试 自动化测试 测试开发

利器 | Java 接口自动化测试首选方案:REST Assured 实践 (一)

霍格沃兹测试开发学社

代码分析体系及Sonarqube平台

霍格沃兹测试开发学社

软件测试 自动化测试 测试开发

leetcode 114. Flatten Binary Tree to Linked List 二叉树展开为链表(简单)

okokabcd

LeetCode 算法与数据结构

数据可视化系列教程之React组件使用技巧

云智慧AIOps社区

前端 React 数据可视化

一文搞懂测试左移和测试右移的 Why-How-What

霍格沃兹测试开发学社

软件测试 自动化测试 测试开发

【xShell 7】强悍的Linux远程链接工具、终端模拟器

淋雨

Linux 运维 xshell

「工作小记」小程序开发的喜怒哀乐

叶一一

小程序 前端 9月月更

由循环开始的前端学习杂谈话事录-sam9029

Sam9029

前端 个人博客 成长笔记 9月月更

代码质量管理平台实战| SonarQube 安装、配置及 JaCoCo、Maven 集成

霍格沃兹测试开发学社

软件测试 自动化测试 测试开发

从 Linux 内核角度探秘 JDK NIO 文件读写本质

bin的技术小屋

Linux jdk nio Linux Kenel 文件I/O

阿里云丁宇:以领先的云原生技术,激活应用构建新范式

阿里巴巴中间件

阿里云 云原生 应用构建

一文带你了解接口测试价值与体系

霍格沃兹测试开发学社

软件测试 自动化测试 测试开发

无代码开发平台怎么选?选择合适无代码平台的13个关键步骤

优秀

无代码平台

Xshell 7 安装激活与换机转移许可证教程详解

淋雨

Linux xshell #运维

「工作小记」关于业务组件的思考

叶一一

前端 React 组件开发 9月月更

Java 并发编程解析 | 如何正确理解Java领域中的锁机制,我们一般需要掌握哪些理论知识?

Java快了!

Java并发 java;

利器 | TestNG 与 Junit 对比,测试框架如何选择?

霍格沃兹测试开发学社

软件测试 自动化测试 测试开发

云架构系统如何做性能分析?| 实战干货

霍格沃兹测试开发学社

软件测试 自动化测试 测试开发

不懂PO 设计模式?这篇实战文带你搞定 PO

霍格沃兹测试开发学社

软件测试 自动化测试 测试开发

隐私计算,让企业大数据走进数据网络时代

Jessica@数牍

五分钟了解 Databend 全新 SQL 类型系统

Databend

开源项目 sql 开源社区 SQL分析

java基础学习:java中的反射

Java快了!

java;

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