Error: el identificador "Float3" está indefinido; Al ejecutar la demostración de Oclnbody en la tarjeta ATI

StackOverflow https://stackoverflow.com/questions/6378813

  •  28-10-2019
  •  | 
  •  

Pregunta

Estoy tratando de ejecutar la demostración OpenCL de Nvidia Oclnbody.exe en la tarjeta ATI Radeo 4850 y recibir tales errores:

Log de compilación: C: Docume ~ 1 Dimedr ~ 1 Locals ~ 1 TEMP OCL27C.TMP.CL (33): Error: Identificador

      "float3" is undefined

Real3 BodyBodyInteraction (Real3 AI, Real4 BI, Real4 BJ, Real SofteningSquared)

^

Y así sucesivamente para todos los usos de datos reales3. He visto el Especificación OpenCl 1.1 Y claramente dice que Float3 es compatible. He tratado de cambiar real3 con Float3 sin suerte. Tengo los últimos controladores para mi tarjeta. Uso del sistema operativo Windows XP SP3

¿Cómo puedo solucionar o trabajar en torno a este error?

¿Fue útil?

Solución 2

He encontrado una solución:

  • Use Float 4 en lugar de Float3;
  • #define Zero4 {0.0F, 0.0F, 0.0F, 0.0F} y úselo en su lugar Zero3
  • y disminuir el número de grupos de trabajo a 64 (era 256)

¡Y funcionó!

Otros consejos

float3 y otros tipos de vectores de 3 componentes no eran parte de la especificación OpenCL 1.0; Se agregaron en la revisión 1.1. De acuerdo a Página de compatibilidad del controlador de AMD, Las tarjetas Radeon HD 4800 solo admiten OpenCL 1.0.

El hecho de que el compilador intentó interpretar float3 Como un identificador muestra que no es un tipo reconocido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top