我是OpenCL的新手,想要开发一个独立于便携式硬件的OpenCL应用程序。 我的笔记本电脑上有ATI Radeon 7670m,根据官方website支持OpenCL 1.1。 但是,此GPU未列在APP SDK系统要求site上。 我有兴趣使用OpenCL仅开发GPU而不是CPU。 那么我有办法做到这一点吗?
答案 0 :(得分:2)
使用OpenCL Context,您可以选择用于开发的设备(例如,CPU或GPU设备),在您的情况下 CL_DEVICE_TYPE_GPU :
cl::Context context(CL_DEVICE_TYPE_GPU, cprops, NULL, NULL, &err);
例如,从官方AMD文档:
int main(void)
{
cl_int err;
cl::vector< cl::Platform > platformList;
cl::Platform::get(&platformList);
checkErr(platformList.size()!=0 ? CL_SUCCESS : -1, "cl::Platform::get");
std::cerr << "Platform number is: " << platformList.size() << std::endl;std::string platformVendor;
platformList[0].getInfo((cl_platform_info)CL_PLATFORM_VENDOR, &platformVendor);
std::cerr << "Platform is by: " << platformVendor << "\n";
cl_context_properties cprops[3] = {CL_CONTEXT_PLATFORM, (cl_context_properties)(platformList[0])(), 0};
cl::Context context(CL_DEVICE_TYPE_GPU, cprops, NULL, NULL, &err);
checkErr(err, "Conext::Context()");
}
答案 1 :(得分:2)
我猜,网站上的信息已经过时了。 7670肯定是OpenCL兼容的。事实上,几乎所有的5xxx系列卡和较新的可以运行OpenCL。