gpt4 book ai didi

c - Nvidia Tesla : No platforms found 上的 OpenCL

转载 作者:IT王子 更新时间:2023-10-29 00:34:10 31 4
gpt4 key购买 nike

我可以访问运行 Debian 7 并安装了两 block Nvidia Tesla 卡的系统。我想使用 OpenCL 进行一些基准测试。然而,OpenCL 无法找到任何兼容平台。我是否需要任何额外的库或特殊驱动程序才能使用 OpenCL?

以下是显示未找到平台的示例代码:

#include <stdio.h>
#include <stdlib.h>
#ifdef __APPLE__
#include <OpenCL/opencl.h>
#else
#include <CL/cl.h>
#endif

int main() {

int i, j;
char* info;
size_t infoSize;
cl_uint platformCount;
cl_platform_id *platforms;
const char* attributeNames[5] = { "Name", "Vendor",
"Version", "Profile", "Extensions" };
const cl_platform_info attributeTypes[5] = { CL_PLATFORM_NAME, CL_PLATFORM_VENDOR,
CL_PLATFORM_VERSION, CL_PLATFORM_PROFILE, CL_PLATFORM_EXTENSIONS };
const int attributeCount = sizeof(attributeNames) / sizeof(char*);

// get platform count
clGetPlatformIDs(5, NULL, &platformCount);

// get all platforms
platforms = (cl_platform_id*) malloc(sizeof(cl_platform_id) * platformCount);
clGetPlatformIDs(platformCount, platforms, NULL);

printf("Platform count: %d\n",platformCount);

// for each platform print all attributes
for (i = 0; i < platformCount; i++) {

printf("n %d. Platform n", i+1);

for (j = 0; j < attributeCount; j++) {

// get platform attribute value size
clGetPlatformInfo(platforms[i], attributeTypes[j], 0, NULL, &infoSize);
info = (char*) malloc(infoSize);

// get platform attribute value
clGetPlatformInfo(platforms[i], attributeTypes[j], infoSize, info, NULL);

printf(" %d.%d %-11s: %sn", i+1, j+1, attributeNames[j], info);
free(info);

}

printf("n");

}

free(platforms);
return 0;

}

以及我用来编译代码的命令:

gcc platforms.c -lOpenCL

如果我运行代码,输出是:

Platform count: 0

最佳答案

您可能面临典型的 ICD 32/64 位问题。64 位和 32 位的 ICD 是完全隔离的,您不能使用 32 位 ICD 运行 64 位应用程序,反之亦然。

当找不到 ICD 或该 ICD 架构的平台时,clGetPlatformIDs 返回 -1001 错误代码:

Returned by clGetPlatformIDs when no platforms are found

CL_PLATFORM_NOT_FOUND_KHR -1001

nVIDIA 只为您下载的版本安装平台库,通常是 64 位,将 32 位 OpenCL 应用程序排除在范围之外。 ICD 仍将加载但不返回任何平台。

以“其他模式”(32/64 位)编译您的应用程序,它会工作。

关于c - Nvidia Tesla : No platforms found 上的 OpenCL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32518105/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com