Как мне запустить программу hello world в openCL? - PullRequest
1 голос
/ 15 марта 2020

Я написал свою первую программу в OpenCL. Но я не могу запустить программу, потому что не удалось установить размер платформы:

#include <iostream>
#include <vector>
#include <cassert>
#include <fstream>
#include <string>

//#define CL_USE_DEPRECATED_OPENCL_2_0_APIS
#include <CL/cl.hpp>

using utyp = unsigned int;
constexpr utyp SIZE = 100000000;

int main(int argc, char *argv[] ) {
    std::vector< cl::Platform > platforms;
    const auto retGet = cl::Platform::get( &platforms );

    std::cout << "retGet == " << retGet << std::endl;
    std::cout << "Platforms.size == " << platforms.size() << std::endl;

    assert( platforms.size() > 0 );
    // etc

Я использую kubuntu 18.x.

Спасибо за любую помощь. С наилучшими пожеланиями.

Продолжить ...

У меня есть доступ к источнику cl :: Platform :: get:

static cl_int get( VECTOR_CLASS<Platform>* platforms)   {
    cl_uint n = 0;
    if( platforms == NULL ) {
        return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_PLATFORM_IDS_ERR);
    }

    cl_int err = ::clGetPlatformIDs(0, NULL, &n);
    if (err != CL_SUCCESS) {
        return detail::errHandler(err, __GET_PLATFORM_IDS_ERR);
    }
    //etc

:: clGetPlatformIDs (0, NULL, & n ) возврат -1001.

Я не могу найти какое-либо описание -1001 в документации. : /

1 Ответ

0 голосов
/ 15 марта 2020

Я нашел решение. Мне пришлось установить пакеты с этого сайта:

https://github.com/intel/compute-runtime/blob/master/DISTRIBUTIONS.md

...