¿Cómo puedo iniciar una aplicación CUDA en Visual Studio 2010?


Pregunta directa: ¿Cómo puedo crear un proyecto simple de hello world CUDA dentro de visual studio 2010?

Antecedentes: He escrito kernels CUDA. Estoy íntimamente familiarizado con el .archivos vcproj de Visual Studio 2005 tw ajustado varios a mano. En VS 2005, si quiero compilar un kernel CUDA, agrego una regla de compilación personalizada y luego defino explícitamente la llamada nvcc para compilar los archivos.

He migrado a Win 7, y VS 2010 porque realmente quiero probar nSight. Tengo nSight 1.5 instalado. Pero aquí es donde estoy totalmente perdido. Si continúo como antes, nvcc informa que solo admite msvc 8.0 y 9.0. Pero el sitio web afirma claramente que es compatible con VS 2010.

He leído en otro lugar que necesito tener VS 2008 (msvc 9.0) también instalado my mi palabra. Lo estoy haciendo ahora.

Pero supongo que al menos parte de mis problemas provienen de las especificaciones de la herramienta de construcción personalizada de cosecha propia. Varios sitios web hablar sobre la adición de un *.reglas de archivo a la compilación, pero he deducido que esto solo es aplicable a VS 2008. En "Build Customizations" veo CUDA 3.1 y 3.2, pero cuando agrego núcleos al proyecto no se construyen. Otro sitio webproclama que la clave son tres archivos: Cuda.utilería Cuda.xml Cuda.se dirige, pero no dice cómo o dónde agregar estos archivos or o más bien apostaré a que simplemente no entiendo las notas a las que se hace referencia en el sitio web.

Entonces ¿alguien sabe cómo cree un proyecto simple en VS 2010 que construya un kernel CUDA using usando la configuración de nSight 1.5 o el NvCudaRuntimeApi.v3.2.archivo de reglas ¿qué incluye el CUDA 3.2 RC?

Gracias de antemano! Ofrecería una recompensa, pero sólo tengo 65 puntos en total.

Author: Community, 2010-09-23

3 answers

KIT DE HERRAMIENTAS CUDA 4.0 y versiones posteriores

El archivo de personalización de compilación (instalado en el directorio Program Files\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations) "enseña" a Visual Studio cómo compilar y vincular cualquier archivo .cu en su proyecto a su aplicación. Si eligió omitir la instalación de las personalizaciones, o si instaló VS2010 después de CUDA, puede agregarlas más tarde siguiendo las instrucciones en Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\extras\visual_studio_integration.

  • Crear un nuevo proyecto utilizando los asistentes estándar de MS (por ejemplo, una consola vacía project)
  • Implemente su código de host (serie) en .c or .cpp files
  • Agregue la personalización de compilación de NVIDIA (haga clic con el botón derecho en el proyecto, Personalizaciones de compilación, marque la casilla CUDA correspondiente)
  • Véase la nota 1 si se utiliza CUDA 4.0
  • Implemente sus envoltorios y núcleos en archivos .cu
  • Si agregaste archivos .cu antes de las personalizaciones de compilación, entonces necesitarás establecer el tipo de los archivos .cu a CUDA C/C++ (haz clic con el botón derecho en el archivo, Propiedades , establecer Tipo de artículo )
  • Agregue la biblioteca de tiempo de ejecución CUDA (haga clic con el botón derecho en el proyecto y elija Propiedades , luego en Enlazador - > Entrada agregue cudart.lib a la Dependencias adicionales )
  • Entonces simplemente construya su proyecto y los archivos. cu serán compilados.obj y añadido al enlace automáticamente

Por cierto, me gustaría abogarevitar cutil si es posible, en lugar de rodar su propia comprobación. Cutil no es compatible con NVIDIA, es solo se usa para tratar de mantener los ejemplos en el SDK enfocados en el programa real y el diseño del algoritmo y evitar repetir las mismas cosas en cada ejemplo (por ejemplo, el análisis de la línea de comandos). Si usted escribe su propio entonces usted tendrá mucho mejor control y sabrá lo que está sucediendo. Por ejemplo, el wrapper cutilSafeCall llama a exit() si la función falla, una aplicación real (en lugar de una muestra) probablemente debería manejar el error más ¡elegantemente!


NOTA

  1. Solo para CUDA 4.0 es posible que necesite aplicar esta corrección a las personalizaciones de compilación. Este parche corrige el siguiente mensaje:

El resultado "" de evaluar el valor "Cud(CudaBuildTasksPath)" del atributo "AssemblyFile" en el elemento no es válido

 45
Author: Tom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-07 11:40:48

Esta respuesta se aplica a CUDA 3.2, desde 4.0 en adelante CUDA soporta el compilador VC 10 directamente, ver otras respuestas para más información

Necesita instalar VS 2008 o el SDK de Windows 6.1. Esto se debe a que NSight 1.5 RC o el SDK de CUDA 3.2 utilizan el compilador VC 9 bajo el capó. Tengo esto trabajando con éxito con 2008 instalado y me dijeron que debería funcionar con el SDK, pero no lo he intentado.

Con NSight 1.5 y / o el SDK de CUDA 3.2 no debería necesitar para muck con las reglas de construcción personalizadas. He estado allí y es doloroso. Con las últimas versiones todo lo que desaparece:

  • Cree su proyecto VC++.
  • Agregue un archivo .CU.
  • Seleccione el archivo de proyecto en el Explorador de soluciones.
  • Abra Personalizaciones de Proyecto | Compilación...
  • Compruebe el " CUDA 3.2 (.objetivo, .props)" personalización.
  • Seleccione un archivo .CU en su proyecto y presione Alt-Enter para mostrar sus propiedades.
  • Asegúrese de que es Item Type se establece en"CUDA C/C++"

Debería simplemente construir. Avísame si esto ayuda y si te encuentras con problemas, ya que es de memoria.

La buena noticia es conseguir CUDA trabajando con VS 2010 acaba de conseguir mucho más fácil.

Ade

Por cierto: Actualizaré mi entrada de blog.

 7
Author: Ade Miller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-10 08:54:27

Otro Buen tutorial aquí:

Http://www.stevenmarkford.com/installing-nvidia-cuda-with-visual-studio-2010 /

Si obtienes un error sobre '

Si agregaste archivos. cu antes de las personalizaciones de compilación, entonces necesitarás establecer el tipo de los archivos .cu a CUDA C / C++ (clic derecho en el archivo, Propiedades, establecer tipo de elemento)

Pero si sigues sus pasos, ¡debería funcionar!

 7
Author: biaspoint,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-12 03:45:15