Portál AbcLinuxu, 1. listopadu 2025 16:55
#include <CL/cl.hpp>
void main(){
cl_platform_id platform;
clGetPlatformIDs(1, &platform, 0);
cl_device_id device;
clGetDeviceIDs(platform, CL_DEVICE_TYPE_DEFAULT, 1, &device, 0);
cl_context_properties props[] = {
CL_CONTEXT_PLATFORM,
(cl_context_properties)platform,
0
};
cl_int err = 0;
cl_context context = clCreateContext(props,1,&device,0,0,&err);
cout << "ErrorCode:" << err << endl;
}
Řešení dotazu:
A signed two's complement 32-bit integer. Z nějakého důvodu jim ale mozek nedovolil použít int32_t? Pokud na takové platformě totiž opencl běží, takový typ snad musí existovat a tedy int32_t bude taky existovat. Ale né, za každou cenu budeme nutit uživatele používat vlastní datové typy, aby kód byl za každou cenu co nejnepřehlednější a zprasený.
Takové API by snad ani nikdo neměl používat a OpenCL bojkotovat a najít si alternativu. Fůj.
A signed two's complement 32-bit integer? Pokud takový typ existuje, musí int32_t v stdint.h být. Pokud neexistuje, těžko by bylo možné vytvořit C API pro takové GPU. Ale ok, už mlčím, jenom musím prudit, protože to občas pomáhá, někdo si toho všimne a pak třeba upustí od kravin, že si bude definovat vlastní celočíselné typy pro každou kravinu.
Vypnul jsem HW akceleraci Flashe a vypadá to, že zatím všechno v pohodě.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.