Спецификации OpenCL 1.0 и 1.1 определяют min, чтобы иметь следующие сигнатуры функций:
gentype min (gentype x, gentype y)
gentype min (gentype x, sgentype y)
Таким образом, типы аргументов должны быть одинаковыми, или 1 вектор и скаляр должны соответствовать типу элемента вектора, например
int4 a,b;
int c;
min(a,b); // All arguments have the same type
min(a,c); // 2nd element may be scalar, matching the
// element type of the 1st argument ( a vector type )
Обратите также внимание, что тип возвращаемого значения get_global_id - size_t, размер которого может быть 32 или 64 бита.
Вам нужно будет привести результаты выражения, чтобы выбрать конкретную перегрузку min.
Существует много перегрузок min (поскольку сообщение об ошибке компилятора несколько бесполезно указывает), например
min(float a, float b);
min(float2 a, float2 b);
min(float2 a, float b);
min(float3 a, float3 b);
min(float3 a, float b);
min(float4 a, float4 b);
... // and vector sizes 4,8,16
min(double a, double b); // With an OpenCL 64bit floating point extension enabled
min(double2 a, double b); // With an OpenCL 64bit floating point extension enabled
... // and integral scalar and vector types (char, schar, short, ushort, int, etc)
...