tag - Usando CUDA con Visual Studio 2017
visual studio code highlight closing tag (8)
Estoy tratando de instalar CUDA, pero recibo un mensaje que dice "No se encontró una versión compatible de Visual Studio". Creo que esto se debe a que estoy usando Visual Studio 2017 (Comunidad), y CUDA actualmente solo admite hasta Visual Studio 2015. Desafortunadamente, Microsoft no me permitirá descargar versiones antiguas de Visual Studio sin pagar una tarifa de suscripción.
¿Hay alguna manera de evitar el problema de compatibilidad con VS 2017, o no puedo usar CUDA?
-
Si desea instalar
CUDA 8.0
conVisual Studio 2017
, necesita instalar componentes adicionales para Visual Studio 2017.
Haga clic en el menú Inicio y escriba Visual Studio Installer. Abra el instalador de Visual Studio
Abra la pestañaIndividual components
y seleccione elVC++ 2015.3 v140 toolset
bajoCompilers, build tools and runtimes
.
-
También necesita instalar
.NET Framework 3.5
si no lo tenía instalado.
Nvda.Build.CudaTasks.v8.0.dll
dependientes del ensamblado en MS .NET Framework 3.5 .
Abra el Panel de control clásico, vaya a
Programs and features
y presione
Turn Windows features on or off
.
Verifique .NET Framework 3.5 y presione OK.
-
Descargue la distribución completa del
CUDA toolkit
y extráigala en algún lugar de su disco. -
Si no tenía instalado el
CUDA toolkit
, hágalo ahora. Si solo tiene instaladoVisual Studio 2017
, desactive la casilla de verificaciónVisual Studio integration
.
Ahora desea recibir el error
"No supported version of the visual studio was found"
.
Pero para construir con éxito proyectos de kit de herramientas Cuda en
Visual Studio 2017
, también debe seguir los pasos 5 y 6.
-
Vaya a
CUDAVisualStudioIntegration/extras/visual_studio_integration/MSBuildExtensions
carpeta en su distribución extraída, copie todos los archivos y péguelos en
C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/v140/BuildCustomizations:
-
En el último paso, deberá editar sus proyectos de
Cuda
para reconocer las tareas de compilación de NVidia deVisual Studio 2017
. Abra su archivo.vcxproj
en un editor de texto y encuentre todas las apariciones deCUDA 8.0.props
. Reemplace la macro al comienzo de la cadena con$(VCTargetsPath14)
para que el fragmento XML se vea de la siguiente manera:
<ImportGroup Label="ExtensionSettings"> <Import Project="$(VCTargetsPath14)/BuildCustomizations/CUDA 8.0.props" /></ImportGroup>
No olvide editar la ruta de destino personalizada al final del archivo:
<ImportGroup Label="ExtensionTargets"> <Import Project="$(VCTargetsPath14)/BuildCustomizations/CUDA 8.0.targets" /></ImportGroup>
¡Asegúrate de verificar la conifuración de tu ruta!
Si usa
nvcc
desde el símbolo del sistema, es posible que no esté llamando a
cl.exe
desde la carpeta de
Visual Studio
.
Ahora puede construir su proyecto Cuda desde Visual Studio 2017.
Partes de esta solución son del blog Oleg Tarasov .
Última actualización (correcta a partir del 06/12/2018) la última versión de Cuda es la 9.2 y la última versión de Visual Studio es la 2017.7 NO funcionan juntas Las instrucciones proporcionadas en la solución anterior no funcionan. Esto es lo que funcionó para mí:
- Desinstalar Visual Studio.
- Desinstalar el instalador de Visual Studio
- Descargue Visual Studio 2017.6 (tenga en cuenta que se sabe que Microsoft cambia los enlaces y las revisiones sin previo aviso) https://docs.microsoft.com/en-us/visualstudio/productinfo/installing-an-earlier-release-of-vs2017
- Iniciar instalador
-
Ir a componentes individuales. Haga clic en Windows 10 SDK 10.0.15063 ingrese la descripción de la imagen aquí
-
Descargue cuda Toolkit del sitio web oficial: https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
- Es posible que deba descargar el parche.
Gracias a todos por su ayuda.
Solo quería complementar esta publicación con las últimas piezas del rompecabezas.
CUDA v9.0 RC está buscando VS2017 para identificar como 1910, pero la última actualización en realidad se identifica como 1911. Para arreglar abrir ... / CUDA / v9.0 / include / crt / host_config.h y cambiar esta línea:
#if _MSC_VER < 1600 || _MSC_VER > 1910
a esto:
#if _MSC_VER < 1600 || _MSC_VER > 1911
También es posible que deba agregar lo siguiente a sus CMakeLists:
list(APPEND CUDA_NVCC_FLAGS --cl-version=2017)
Me encontré con el mismo problema usando CUDA 9.1 y VS2017 Enterprise.
Después de cambiar el compilador de VC ++ a v140 (en lugar de 141) todo funciona bien.
Ya tenía banderas
#if _MSC_VER < 1600 || _MSC_VER > 1911
Pero no dejaría de mostrar el error.
No tengo idea de por qué, pero tratar de ejecutarlo en VS2015 conduce a errores sobre la instalación de v141 ... así que, debido a una lógica retorcida, traté de no usar v141 donde estaba instalado ... ¡y todo funcionó!
Dejar esto aquí ya que puede ayudar a alguien más en la misma situación. (aunque realmente no entiendo por qué, cómo, cuándo, quién o qué de la solución.
Para las personas que ven esto último.
Primero, intente instalar CUDA 10 (CUDA Toolkit 10.0).
Si todavía no funciona sin modificaciones, asegúrese de tener tantos conjuntos de herramientas VC ++ como puede ver en la lista. Mira este video , para a las 8:41 y compara las listas.
Si por alguna razón tiene que usar CUDA 9.0 - 9.2 deberá saltar algunos aros:
- Para compilaciones cmd, configure vcvars_ver = 14.11 - vea esta respuesta
-
Para las compilaciones de IDE, configure Platform Toolset (en las propiedades del proyecto - General) en
- Visual Studio 2017 (v141)) o
- Visual Studio 2015 (v140))
Si tiene una compilación basada en cmd muy personalizada,
#if _MSC_VER
(en
.../CUDA/.../include/crt/host_config.h
) y elimine el final
|| _MSC_VER > ...
|| _MSC_VER > ...
Para que funcione el compilador de Cuda
nvcc
en Windows Shell, debe hacer lo siguiente
-
instale la versión adecuada del conjunto de herramientas del componente individual para VS 2017 -
VC++ 2017 version 15.4 v.14.11 toolset
-
Ejecute en el shell de Windows siguiendo
"c:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build/vcvarsall.bat" x64 -vcvars_ver=14.11
-
Puede compilar código
nvcc
sin errores desde el shell de Windows
Por el momento, Microsoft todavía parece estar haciendo disponible la edición comunitaria VS2015 Update 2. Tienes que unirte al programa "dev essentials", pero parece ser gratis.
Pude descargar el instalador desde here recientemente.
Actualización: CUDA 9 RC se puso a disposición ayer en developer.nvidia.com para desarrolladores registrados, y tiene soporte para VS 2017.
Quería editar mis programas CUDA usando un editor de texto (es decir, Sublime) y compilarlos desde el símbolo del sistema, pero me encontré con un error del compilador nvcc. Instalé Visual Studio 2017 con el sistema operativo Windows 10, pero después de compilar, decía "solo se permiten las versiones de VS 2012, 13, 15 y 17". Entonces, lo que hice fue instalar el kit de herramientas VC ++ 2015 del paquete de instalación del instalador VS 2017 (consulte la imagen de la publicación superior). No realicé todo el proceso, solo copié la ruta de mi archivo cl.exe de la carpeta VS 14.0 recién creada a la variable de entorno. El .exe se puede encontrar aquí:
C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin
¡Espero que esto ayude!