Durante a execução de um processo, os resultados das chamadas subsequentes podem clGetPlatformIds()
mudar? Ou seja, as plataformas podem desaparecer, aparecer, mudar de ordem ou mudar os identificadores ("ids")?
Estou perguntando sobre o que o padrão OpenCL garante, ou determina, é claro.
Não consegui encontrar nenhuma seção normativa na norma sobre isso.
Na prática, o carregador Khronos OpenCL ICD inicializa as plataformas apenas uma vez ( Linux , Windows ), então a lista de plataformas e seus índices não devem mudar se você fizer a coisa usual de vincular à biblioteca OpenCL.
No entanto, se você usar
dlopen
edlclose
para carregar e descarregarlibOpenCL
a biblioteca, os resultados declGetPlatformIds
podem mudar entre as duas invocações (setenv("OCL_ICD_VENDORS", "/no/such/path", 1);
é uma maneira fácil de quebrar as coisas)