После определенных танцев с бубнами (а разве бывает без них с линуксом?

) удалось затащить нужные пакеты и зависимости opencl для граф. ускорителя рокчипа mali g610.
Нашел на гитхабе и несколько модифицировал пример вычислений - добавил измерение времени расчета.
И тут поджидал первый сюрприз - размеры двух интовых векторов, которые передаются в кернел для вычислений менял в широких пределах (от 512 до

):
(Оффтоп)
Код:
#include <stdio.h>
#include <stdlib.h>
#include <chrono>
#include <CL/cl.h>
#define MAX_SOURCE_SIZE (0x100000)
using namespace std;
using namespace std::chrono;
int main(void) {
printf("started running\n");
int i;
const int LIST_SIZE = 512 * 512; //<- размерность тех самых векторов
int *A = (int*)malloc(sizeof(int)*LIST_SIZE);
int *B = (int*)malloc(sizeof(int)*LIST_SIZE);
for(i = 0; i < LIST_SIZE; i++) {
A[i] = i;
B[i] = LIST_SIZE - i;
}
...
Далее, после компиляции кернела opencl (которая у него происходит, как известно, во время исполнения) и загрузки векторов А и В, производится собственно вычисление и замер времени на оное:
(Оффтоп)
Код:
...
auto start_time = high_resolution_clock::now();
// запуск кернела opencl
size_t global_item_size = LIST_SIZE;
size_t local_item_size = 64; // тут я думал, что указывается макс. возможное кол-во однотипных процессов (для уск-ля g610 это и есть 64)
//запускаем очередь на выполнение:
ret = clEnqueueNDRangeKernel(command_queue, kernel, 1, NULL,
&global_item_size, &local_item_size, 0, NULL, NULL);
auto stop_time = high_resolution_clock::now();
...
Немного пояснил в комментариях к коду, но хотел сказать, что ожидал, что время на выполнение будет прямо пропорционально зависеть от соотношения длины векторов к количеству ядер (айтемов) ускорителя:

Вычисления в примере сделал не сложными. Вот код кернела:
(Оффтоп)
Код:
__kernel void vector_add(__global const int *A, __global const int *B, __global int *C) {
int i = get_global_id(0);
C[i] = A[i]*2 + B[i]*3 + A[i]*4 + B[i]*5;
}
Однако, что удивительно, время вычислений
абсолютно не зависит от длины векторов (по крайней мере, в диапазоне от 512 до

) и составляет 40-45 мс!
Это вобщем-то хорошо, не хорошо то, что я тогда не понимаю, что от чего зависит...
