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

Windows Build Issues #213

Open
justinstimatze opened this issue Nov 1, 2016 · 15 comments
Open

Windows Build Issues #213

justinstimatze opened this issue Nov 1, 2016 · 15 comments
Assignees
Projects

Comments

@justinstimatze
Copy link

@justinstimatze justinstimatze commented Nov 1, 2016

Attempting to build on Windows 10 using VS2015 produces these errors:

  • Cannot open include file: 'libgen.h': No such file or directory gunrock\graphio\market.cuh 20
  • Cannot open include file: 'sys/utsname.h': No such file or directory gunrock\util\sysinfo.h 18
  • Cannot open include file: 'unistd.h': No such file or directory gunrock\util\sysinfo.h 21
@justinstimatze justinstimatze changed the title Windows build: Missing header files Windows Build Issues Nov 2, 2016
@justinstimatze

This comment has been minimized.

Copy link
Author

@justinstimatze justinstimatze commented Nov 2, 2016

Thanks @neoblizz! That definitely helped. I haven't gotten the build to complete yet, but here are some notes that might be helpful:

  • unistd.h
  • I'm using pthreads4w/pthreads-win32 and get errors about the redeclaration of type name "timespec". This seems like a common issue and can probably be avoided with defining HAVE_STRUCT_TIMESPEC, but I had issues with VS2015 propagating that define and just commented out the timespec definition in pthread.h (obviously not a good idea).
  • There's a reference to drand48_r (graphio/rmat.cuh(37)) but this seems like an issue that's also present on OS X with clang, so in the appropriate section of utils.h I added:
#ifdef _WIN32
#define USE_STD_RANDOM          // WIN32 has no {s,d}rand48_r
#endif
  • There are some typos in util/multithread_utils.cuh. These are wrapped in a #ifdef _WIN32 so they're easy to miss.
    • Line 89: baiier -> barrier
    • Line 122: Add barrier-> before releaseCount
  • There's several instances of AdvanceKernelPolity in the codebase that should probably be AdvanceKernelPolicy.
  • There are a number of places where _DEBUG is used, but _DEBUG is also used/set by MSVC's Debug configuration. This occurs at:
    • app/enactor_base.cuh(2355)
    • app/bc/bc_enactor.cuh(36)
    • app/bc/bc_enactor.cuh(1022)
    • app/cc/cc_enactor.cuh(36)
    • app/cc/cc_enactor.cuh(871)
    • app/bfs/bfs_enactor.cuh(446)
    • app/pr/pr_enactor.cuh(35)
    • app/pr/pr_enactor.cuh(1433)
  • There are some extra steps in MSVC that need to be done after the .sln file is generated by CMake. Unfortunately any re-running of CMake resets the .vcxproj files, resetting these. Some normally need to be set per-project and there are many projects generated, so some usage of .vsprops and inheritance would probably be great long-term.
    • Include directories, as expected.
    • Change the gunrock project to produce a static .lib file (vs dll), with the correct file extension, and clear the "intermediate directory" field.
    • Add the CUDA Toolkit as a Build Customization and change each .cu file from Custom Build (as defined by CMake?) to CUDA (or nvcc doesn't seem to be executed correctly).
  • I'm currently trying to figure out some template errors relating to the usage of GraphSlice. Sample errors:
    • 1>gunrock\gunrock/app/sssp/sssp_enactor.cuh(133): error : type "gunrock::app::IterationBase<_AdvanceKernelPolicy, _FilterKernelPolicy, _Enactor, _HAS_SUBQ, _HAS_FULLQ, _BACKWARD, _FORWARD, _UPDATE_PREDECESSORS>::GraphSlice [with _AdvanceKernelPolicy=AdvanceKernelPolicy, _FilterKernelPolicy=FilterKernelPolicy, _Enactor=Enactor, _HAS_SUBQ=true, _HAS_FULLQ=false, _BACKWARD=false, _FORWARD=true, _UPDATE_PREDECESSORS=Enactor::Problem::MARK_PATHS]" may not have a template argument list
    • 1>gunrock\gunrock/app/sssp/sssp_enactor.cuh(133): error : GraphSlice is not a template
  • I'm happy to put any of this into a PR into a develop branch if that's helpful, but I won't have time to look at this again until early next week.
@jowens

This comment has been minimized.

Copy link
Contributor

@jowens jowens commented Nov 2, 2016

Wow. This is super helpful. Thanks @justinstimatze!

@olauq

This comment has been minimized.

Copy link

@olauq olauq commented Nov 18, 2016

Hi, I for one would really appreciate a windows compatible branch or fork or whatever is the right git lingo. Did you create one?

I'm also having problems with the cmake process not working on windows. Trying to build the project just gives these messages:
1> Building NVCC (Device) object gunrock/CMakeFiles/gunrock.dir/util/Debug/gunrock_generated_misc_utils.cu.obj
1> misc_utils.cu
1>
1>cl : Command line error D8021: invalid numeric argument '/Wno-deprecated-declarations'
1>
1>CUSTOMBUILD : nvcc warning : The -std=c++11 flag is not supported with the configured host compiler. Flag will be ignored.
1>
1> CMake Error at gunrock_generated_misc_utils.cu.obj.Debug.cmake:222 (message):
1> Error generating
1> C:/code/gunrock/build/gunrock/CMakeFiles/gunrock.dir/util/Debug/gunrock_generated_misc_utils.cu.obj
1>

Did you get these also?

Cheers

@yzhwang

This comment has been minimized.

Copy link
Member

@yzhwang yzhwang commented Nov 18, 2016

@olauq @justinstimatze :
Thanks for your input here. we are working on a journal paper submission lately and cannot put too much time on this before Dec 16th. But I will start working on this after Dec 16th since I will have much more time then. I will put my findings here when I start working on this. Meanwhile, you guys please keep sharing good experiences :-)

@jowens

This comment has been minimized.

Copy link
Contributor

@jowens jowens commented Nov 18, 2016

@olauq When you look at @justinstimatze's efforts above, what do you see as the most tractable path going forward?

We haven't prioritized Windows development at all (obviously). This appears to be a significant effort and it's more likely that someone with more experience than any of us in the group with respect to Windows would be better suited to it (pull request?) than we would.

@justinstimatze

This comment has been minimized.

Copy link
Author

@justinstimatze justinstimatze commented Nov 21, 2016

Hi @olauq, the error you posted is (I believe) addressed by adding the Build Customization of CUDA 8 and changing the build type for .cu files from Custom to CUDA. I'm still occasionally working on the windows build, but have no further significant progress to report.

@AwesomeLemon

This comment has been minimized.

Copy link

@AwesomeLemon AwesomeLemon commented May 26, 2017

I'm interested in a Windows build too.
@justinstimatze, have you managed to make it work?
Maybe @neoblizz have made some unreported progress on the issue #107?

@justinstimatze

This comment has been minimized.

Copy link
Author

@justinstimatze justinstimatze commented May 26, 2017

@neoblizz

This comment has been minimized.

Copy link
Member

@neoblizz neoblizz commented Jun 22, 2017

@justinstimatze did you get a chance to work on this? I am thinking about refactoring some of the gunrock's code to support a windows build. It doesn't seem trivial but shouldn't be extremely tough either. I might bug you on some of the things you mentioned here, but if you have any further report please let me know! Thanks! 👍

@justinstimatze

This comment has been minimized.

Copy link
Author

@justinstimatze justinstimatze commented Jun 22, 2017

Hi @neoblizz, I'm sorry to say I haven't made the time for it. Realistically, I don't think I'll be able to until after SIGGRAPH. I agree it doesn't seem extremely tough, just a little tedious. Please feel free to bug me! I can probably act as a tester for patches, if you need one.

@neoblizz

This comment has been minimized.

Copy link
Member

@neoblizz neoblizz commented Jun 22, 2017

Your notes are really helpful! Thank you so much, good luck on SIGGRAPH!

@neoblizz neoblizz added the windows label Mar 13, 2018
@neoblizz neoblizz pinned this issue Jan 22, 2019
@larzw

This comment has been minimized.

Copy link

@larzw larzw commented Feb 21, 2019

Hi, just curious on the status of this?

@jowens

This comment has been minimized.

Copy link
Contributor

@jowens jowens commented Feb 21, 2019

We haven't worked on this at all. Not a priority for the work we're trying to do nor for the kind, brilliant, extremely good-looking folks who fund the work we do.

@larzw

This comment has been minimized.

Copy link

@larzw larzw commented Feb 21, 2019

@jowens Thanks for letting me know and all the great work on this!

@neoblizz neoblizz added this to Features in Roadmap Nov 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Roadmap
  
Features
7 participants
You can’t perform that action at this time.