Usando #include para carregar código OpenCL
-
06-07-2019 - |
Pergunta
Eu vi este feito há muito tempo com HLSL / GLSL shader código -. Usando um #include
no arquivo de código fonte que cola o código em um char*
para que nenhum arquivo IO acontece em tempo de execução
Se eu fosse para representá-lo como pseudo-código, ele ficaria um pouco como este:
#define CLSourceToString(filename) " #include "filename" "
const char* kernel = CLSourceToString("kernel.cl");
Agora, é claro que #define
não está indo para o trabalho, porque ele vai apenas tentar usar essas aspas para começar strings.
Solução
Veja os motores de bala física utilização de OpenCL para como fazer isso para um kernel do .
Em C ++ / source C
#define MSTRINGIFY(A) #A
char* stringifiedSourceCL =
#include "VectorAddKernels.cl"
Na fonte OpenCL
MSTRINGIFY(
__kernel void VectorAdd(__global float8* c)
{
// snipped out OpenCL code...
return;
}
);
Outras dicas
De acordo com a este , é não é possível, mas você pode usar xxd -i
para archieve o mesmo efeito.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow