Hello guys and girls. I’ve looked through numerous topics on matlab cuda compilation problems but Im unable to find any sufficient info on this exact setup. That is, compiling CUDA extended mex c code files on Windows 7 64-bit, Matlab R2010a 64-bit (why is there no windows 7 forum?).
The nvmex plugin gives the following error:
nvmex
WARNING: $ARCH (UNKNOWN) not set correctly [win64]
C:\PROGRA~1\MATLAB\R2010A\BIN\NVMEX.PL:
Error: Using options file:
C:\Users\Kasper\AppData\Roaming\MathWorks\MATLAB\R2010a\mexopts.bat
You cannot use this file with the UNKNOWN architecture because it enables
a compiler for a different architecture.
Running mex -setup may resolve this problem.
??? Error using ==> nvmex at 206
Unable to complete successfully.
Invoking “system(sprintf('nvcc -I”%s/extern/include" --cuda “mexfun.cu” --output-file “mexfun.cpp”', matlabroot));" gives the following error:
nvcc fatal : Cannot find compiler ‘cl.exe’ in PATH
Even though I’ve added “C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin” where cl.exe is located to “Set Path…” under the files menu.
Do you know what I’m doing wrong?
Perhaps if I clarify my situation further it is easier for you to help me. I downloaded the following package from the file mathworks file exchange: http://www.mathworks.com/matlabcentral/fil…grams-in-matlab. I ran setup_cuda_mex which generated cudamexopts.bat, cuda_nex.pl, cuda_mex.m and cuda_mex_helper.m correctly. However, when it tries to compile the provided “example.cu” I get the first error message in the post above.
WARNING: $ARCH (UNKNOWN) not set correctly [win64]
C:\PROGRA~1\MATLAB\R2010A\BIN\CUDA_MEX.PL:
Error: Using options file:
C:\Users\Kasper\AppData\Roaming\MathWorks\MATLAB\R2010a\cudamexopts.bat
You cannot use this file with the UNKNOWN architecture because it enables
a compiler for a different architecture.
Running mex -setup may resolve this problem.
My cudamexopts.bat looks like this:
@echo off
rem MSVC90OPTS.BAT
rem
rem Compile and link options used for building MEX-files
rem using the Microsoft Visual C++ compiler version 9.0 SP1
rem
rem $Revision: 1.1.6.6 $ $Date: 2009/05/18 19:49:43 $
rem Copyright 2007-2009 The MathWorks, Inc.
rem
rem StorageVersion: 1.0
rem C++keyFileName: MSVC90OPTS.BAT
rem C++keyName: Microsoft Visual C++ 2008
rem C++keyManufacturer: Microsoft
rem C++keyVersion: 9.0
rem C++keyLanguage: C++
rem
rem ************************************************************
********
rem General parameters
rem ************************************************************
********
set MATLAB=%MATLAB%
set VSINSTALLDIR=
set VCINSTALLDIR=%VSINSTALLDIR%\VC
rem In this case, LINKERDIR is being used to specify the location of the SDK
set LINKERDIR=C:\Program Files\Microsoft SDKs\Windows\v6.0A\
set PATH=%VCINSTALLDIR%\bin\amd64;%LINKERDIR%\bin\x64;%VCINSTALLDIR%\BIN;%VSINSTALLDIR%\Common7\Tools;%VSINSTALLDIR%\Common7\Tools\bin;%MATLAB_BIN%;%PATH%
set INCLUDE=%LINKERDIR%\include;%VCINSTALLDIR%\ATLMFC\INCLUDE;%VCINSTALLDIR%\INCLUDE;%VCINSTALLDIR%\VCPackages;%INCLUDE%;%CUDA_INC_PATH%;%NVSDKCUDA_ROOT%\common\inc
set LIB=%LINKERDIR%\LIB\x64;%VCINSTALLDIR%\LIB\amd64;%VCINSTALLDIR%\ATLMFC\LIB\amd64;%MATLAB%\extern\lib\win64;%LIB%;%CUDA_LIB_PATH%;%NVSDKCUDA_ROOT%\common\lib
set MW_TARGET_ARCH=win64
rem ************************************************************
********
rem Compiler parameters
rem ************************************************************
********
set COMPILER=nvcc
set COMPFLAGS=-c -Xcompiler "/c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD"
set OPTIMFLAGS=-Xcompiler "/O2 /Oy- /DNDEBUG"
set DEBUGFLAGS=-Xcompiler "/Z7"
set NAME_OBJECT=-o ""
rem ************************************************************
********
rem Linker parameters
rem ************************************************************
********
set LIBLOC=%MATLAB%\extern\lib\win64\microsoft
set LINKER=link
set LINKFLAGS=/dll /export:%ENTRYPOINT% /LIBPATH:"%LIBLOC%" libmx.lib libmex.lib libmat.lib /MACHINE:X64 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /incremental:NO /implib:"%LIB_NAME%.x" /MAP:"%OUTDIR%%MEX_NAME%%MEX_EXT%.map" cudart.lib
set LINKOPTIMFLAGS=
set LINKDEBUGFLAGS=/DEBUG /PDB:"%OUTDIR%%MEX_NAME%%MEX_EXT%.pdb"
set LINK_FILE=
set LINK_LIB=
set NAME_OUTPUT=/out:"%OUTDIR%%MEX_NAME%%MEX_EXT%"
set RSP_FILE_INDICATOR=@
rem ************************************************************
********
rem Resource compiler parameters
rem ************************************************************
********
set RC_COMPILER=rc /fo "%OUTDIR%mexversion.res"
set RC_LINKER=
set POSTLINK_CMDS=del "%LIB_NAME%.x" "%LIB_NAME%.exp"
set POSTLINK_CMDS1=mt -outputresource:"%OUTDIR%%MEX_NAME%%MEX_EXT%;2" -manifest "%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest"
set POSTLINK_CMDS2=del "%OUTDIR%%MEX_NAME%%MEX_EXT%.manifest"
set POSTLINK_CMDS3=del "%OUTDIR%%MEX_NAME%%MEX_EXT%.map"
As mentioned before, I’m running Windows 7 64-bit, Matlab R2010a 64-bit and Visual Studio 2008 Professional.
Have you tried looking at this? I had a similar problem, but this seems to have let me compile the mex files.
[url=“The Official NVIDIA Forums | NVIDIA”]The Official NVIDIA Forums | NVIDIA