Pergunta

Se eu tenho algo como:

err = clEnqueueReadBuffer(cmdQueue, output, CL_TRUE, 0, sizeof(float) * data_sz, &results, 0, NULL, NULL);

Eu gostaria de fazer:

if (err != CL_SUCCESS){
    perror("Read Failed!");
}

Mas as constantes de erro como "cl_host_out_of_memory" e similares são (compreensivelmente) que não são conhecidas por perror ().

Eu poderia dar a volta dos arquivos .h associados ao OpenCL, mas essa não é uma solução ideal. Estou aberto a outras maneiras convenientes de rastrear os números de erros. Estou no OSX Snow Leopard (incluindo isso por precaução, mas não acho que seja relevante)

Foi útil?

Solução

Se você tiver o Nvidia OpenCl Sdk, poderá usar o oclErrorString() função fornecida por oclutils.

Outras dicas

Não há nenhum atualmente. Acabei escrevendo o meu, no estilo de gluErrorString(). Acabei de colar todos os cl_error Codifica em um arquivo e processou cada linha em EMACS para convertê -la em vários casos dentro de uma instrução SWITCH (para permitir entradas descontíguas) que retornam seqüências constantes. Foi muito fácil e bastante útil. Eu posso postar em algum lugar, se você quiser.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top