Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Facing Difficulties In Compiling Code #1

Open
gaming-wiz opened this issue Mar 18, 2023 · 3 comments
Open

Facing Difficulties In Compiling Code #1

gaming-wiz opened this issue Mar 18, 2023 · 3 comments
Labels
help wanted Extra attention is needed

Comments

@gaming-wiz
Copy link

Hello,
I am currently working on a project that involves the parallelization of Cython code using different techniques such as OpenMP, and CUDA. As I am new to all this, I started compiling the Dotproduct code. My system has the CUDA toolkit installed already, and I was able to successfully run the bat.file in VS Code. The files and folders generated after this are shown in the image below. However, when I open test.py, it throws an error saying ModuleNotFoundError: No module named 'cudaext'. I am stuck trying to figure this out and any kind of help would be appreciated.
Thanks

image

image

@oKatanaaa
Copy link
Owner

I tried to build it for myself, but didn't face the same issue.

No module named 'cudaext': most likely that the code wasn't built successfully. Could you please provide logs generated after running build.bat?

@oKatanaaa oKatanaaa added the help wanted Extra attention is needed label Mar 18, 2023
@gaming-wiz
Copy link
Author

gaming-wiz commented Mar 18, 2023

These lines are printed when I run build.bat file. Is it required that I run these files using Visual Studio? Currently, I am using VS Code.

D:\ME\Projects\Project 7\Output\Test Output 10 (CUDA)\CudaCythonSamples-master\vec_sum>python setup.py build_ext -i
D:\ME\Projects\Project 7\Output\Test Output 10 (CUDA)\CudaCythonSamples-master\vec_sum\setup.py:3: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
from distutils.core import setup
FOUND CUDA TOOLKIT ON PC
ic| CUDA: {'home': 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6',
'include': 'C:\Program Files\NVIDIA GPU Computing '
'Toolkit\CUDA\v11.6\include',
'lib64': 'C:\Program Files\NVIDIA GPU Computing '
'Toolkit\CUDA\v11.6\lib\x64',
'nvcc': 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin'}
running build_ext
cythoning wrapper.pyx to wrapper.cpp
C:\Users\91701\AppData\Local\Programs\Python\Python310\lib\site-packages\Cython\Compiler\Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: D:\ME\Projects\Project 7\Output\Test Output 10 (CUDA)\CudaCythonSamples-master\vec_sum\wrapper.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
building 'cudaext' extension
creating build
creating build\temp.win-amd64-3.10
creating build\temp.win-amd64-3.10\Release
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include -IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include -IC:\Users\91701\AppData\Local\Programs\Python\Python310\include -IC:\Users\91701\AppData\Local\Programs\Python\Python310\Include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\include -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt /EHsc /Tpwrapper.cpp /Fobuild\temp.win-amd64-3.10\Release\wrapper.obj /openmp
wrapper.cpp
wrapper.cpp(2244): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
warning: no library file corresponding to 'lib/kernel' found (skipping)
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\lib\x64 /LIBPATH:C:\Users\91701\AppData\Local\Programs\Python\Python310\libs /LIBPATH:C:\Users\91701\AppData\Local\Programs\Python\Python310\PCbuild\amd64 /LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\lib\x64 /LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64 /LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\ucrt\x64 /LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x64 cudart.lib /EXPORT:PyInit_cudaext build\temp.win-amd64-3.10\Release\wrapper.obj /OUT:D:\ME\Projects\Project 7\Output\Test Output 10 (CUDA)\CudaCythonSamples-master\vec_sum\cudaext.cp310-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.10\Release\cudaext.cp310-win_amd64.lib
Creating library build\temp.win-amd64-3.10\Release\cudaext.cp310-win_amd64.lib and object build\temp.win-amd64-3.10\Release\cudaext.cp310-win_amd64.exp
wrapper.obj : error LNK2001: unresolved external symbol "float __cdecl vec_sum(float *,int)" (?vec_sum@@YAMPEAMH@Z)
D:\ME\Projects\Project 7\Output\Test Output 10 (CUDA)\CudaCythonSamples-master\vec_sum\cudaext.cp310-win_amd64.pyd : fatal error LNK1120: 1 unresolved externals
error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX86\x64\link.exe' failed with exit code 1120

@oKatanaaa
Copy link
Owner

@gaming-wiz you don't need to run these files from Visual Studio, everything can be done inside a terminal. Using VS Code is fine.

It seems like it is not the whole output. I don't see logs that corresponds to cuda kernel compilation.

Here is what my output looks like:

(base) PS C:\University\MastersDegree\Cuda\CudaCythonSamples\dotproduct> build.bat     

C:\University\MastersDegree\Cuda\CudaCythonSamples\dotproduct>del lib/kernel.lib 
Invalid switch - "kernel.lib".

C:\University\MastersDegree\Cuda\CudaCythonSamples\dotproduct>del cudaext* 

C:\University\MastersDegree\Cuda\CudaCythonSamples\dotproduct>rmdir /s /q build 

C:\University\MastersDegree\Cuda\CudaCythonSamples\dotproduct>nvcc -lib -Xcompiler /MD -I ../common -O2 -o lib/kernel.lib cuda/kernel.cu 
kernel.cu

C:\University\MastersDegree\Cuda\CudaCythonSamples\dotproduct>python setup.py build_ext -i 
ic| CUDA: {'home': 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.2',
           'include': 'C:\\Program Files\\NVIDIA GPU Computing '
                      'Toolkit\\CUDA\\v11.2\\include',
           'lib64': 'C:\\Program Files\\NVIDIA GPU Computing '
                    'Toolkit\\CUDA\\v11.2\\lib\\x64',
           'nvcc': 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.2\\bin'}
running build_ext
skipping 'wrapper.cpp' Cython extension (up-to-date)
building 'cudaext' extension
creating build
creating build\temp.win-amd64-3.8
creating build\temp.win-amd64-3.8\Release
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include" -IC:\Users\oKata\anaconda3\lib\site-packages\numpy\core\include "-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include" -IC:\Users\oKata\anaconda3\include -IC:\Users\oKata\anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\cppwinrt" /EHsc /Tpwrapper.cpp /Fobuild\temp.win-amd64-3.8\Release\wrapper.obj /openmp
wrapper.cpp
C:\Users\oKata\anaconda3\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
wrapper.cpp(2608): warning C4244: '=': conversion from 'npy_intp' to 'int', possible loss of data
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO "/LIBPATH:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\lib\x64" /LIBPATH:C:\Users\oKata\anaconda3\libs /LIBPATH:C:\Users\oKata\anaconda3\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22000.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22000.0\um\x64" lib\kernel.lib cudart.lib /EXPORT:PyInit_cudaext build\temp.win-amd64-3.8\Release\wrapper.obj /OUT:C:\University\MastersDegree\Cuda\CudaCythonSamples\dotproduct\cudaext.cp38-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.8\Release\cudaext.cp38-win_amd64.lib
   Creating library build\temp.win-amd64-3.8\Release\cudaext.cp38-win_amd64.lib and object build\temp.win-amd64-3.8\Release\cudaext.cp38-win_amd64.exp
Generating code
Finished generating code

Make sure you capture the whole output. Because the cuda compilation part is crucial here, looks like something's messed up there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants