在笔记本电脑上开发没有GPU支持的OpenCL应用?

时间:2014-02-21 14:53:24

标签: c++ c opencl

我是OpenCL的新手,想要开发一个独立于便携式硬件的OpenCL应用程序。 我的笔记本电脑上有ATI Radeon 7670m,根据官方website支持OpenCL 1.1。 但是,此GPU未列在APP SDK系统要求site上。 我有兴趣使用OpenCL仅开发GPU而不是CPU。 那么我有办法做到这一点吗?

2 个答案:

答案 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。