【问题标题】:How do you get the total number of cores on the GPU你如何获得GPU上的核心总数
【发布时间】:2014-04-20 16:29:40
【问题描述】:

有什么方法可以在 .Net 应用程序中获取系统的 GPU 信息?我正在编写一个 GPGPU 应用程序,想知道系统显卡中的内核总数。我需要知道这一点,这样我才能动态地改变我通过 GPU 处理数据的方式。

【问题讨论】:

  • 您使用什么框架(OpenCL、CUDA 等)?每个都有一个查询设备信息的API
  • 也是“核心”的定义is not strictly defined,你能详细说明一下你说“核心”时要数什么吗?
  • 我没有使用 OpenCL 或 CUDA。我正在使用 XNA 在 HLSL 着色器代码中运行计算。当我说核心时,我指的是流处理器。

标签: c# gpgpu


【解决方案1】:

您可以通过 CUDA 获得此信息。

cuda API 通过调用cudaGetDeviceProperties 提供的设备属性将帮助您获得多处理器的总数。根据计算能力,您可能会获得每个多处理器的内核数。 deviceQuery SDK 示例可能会引导您完成此操作。

该方法在cudart_{arch}_{ver}.dll 中可用。以下是 P/Invoke 的示例:

[DllImport(CUDARTDLL, CharSet = CharSet.Ansi, EntryPoint = "cudaGetDeviceProperties")]
public static extern cudaError_t cudaGetDeviceProperties(out cudaDeviceProp props, int device);

这需要部署 cuda 运行时 dll。

CUDA 核心执行顶点和片段图形操作,因此可以(曾经)被命名为流处理器。

【讨论】:

    【解决方案2】:

    这可能对您有用。 Here.

    【讨论】:

      猜你喜欢
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多