本文来安利大家一个超强的库,这个库可以让你的 C# 代码利用上 GPU 显卡的性能,进行一些并行计算。这个库是基于 DirectX12GameEngine 的 ComputeSharp 库。在这个库里面将会动态生成 HLSL 代码,使用着色器的方式在 GPU 上跑起来
这个 ComputeSharp 库在 GitHub 完全开源,请看 https://github.com/Sergio0694/ComputeSharp
在开始之前,按照 dotnet 的基本玩法,先通过 NuGet 安装库,然后使用,咱先来创建一个空白的项目。这个 ComputeSharp 库能支持的 .NET Standard 2.1 和以上的版本
通过 NuGet 安装 ComputeSharp 库,在 NuGet 包命令行输入下面代码
或者在 csproj 文件上添加下面代码
下面使用一个并行给一个 float 数组设置顺序值的例子告诉大家如何使用这个库
先定义 Shader 的实现,请看下面代码
这段代码将会被用来生成 HLSL 代码,因此一些属性的命名是不能更改的
然后从 GPU 中申请一段内存
接着在 GPU 上运行
运行完成之后,可以使用下面代码拿到值
使用下面代码可以输出数组里面的值
此时可以看到这个数组里面的值都按照顺序被设置了对应的值
本文代码放在github欢迎小伙伴访问
还有更多高级的用法,还请看 https://github.com/Sergio0694/ComputeSharp
原文链接: http://blog.lindexi.com/post/dotnet-%E8%AE%A9-C-%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E5%8A%A8%E6%80%81%E7%94%9F%E6%88%90-HLSL-%E4%BD%BF%E7%94%A8-DX12-%E7%9A%84-GPU-%E5%B9%B6%E8%A1%8C%E8%AE%A1%E7%AE%97%E5%BA%93-ComputeSharp-%E7%9A%84%E7%AE%80%E4%BB%8B
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
欢迎转载、使用、重新发布,但务必保留文章署名 林德熙 (包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我 联系。