medicnick / gpuocelot

Automatically exported from code.google.com/p/gpuocelot
0 stars 0 forks source link

Ocelot does not build on windows #51

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
The title says it all, we need someone to actually step through the entire 
build process on windows.

Original issue reported on code.google.com by gregory....@gatech.edu on 21 Apr 2011 at 6:52

GoogleCodeExporter commented 8 years ago
Ocelot uses functions provided in cfenv/fenv.h. This header file is not part of 
MSVC standard library implementation.

Has anyone got around this isse? Perhaps by changing the source/ supplying own 
functions etc?

Thanks,
Ganesh

Original comment by ganesh.p...@amd.com on 11 May 2011 at 9:35

GoogleCodeExporter commented 8 years ago
See 
http://code.google.com/p/gpuocelot/source/browse/trunk/branches/ocelot-windows/o
celot/executive/implementation/CooperativeThreadArray.cpp?r=1001 for what I did 
to get around this the last time I tried.  I couldn't immediately find an 
equivalent to fenv on windows so I just turned it off.  Ideally, we would want 
a way to set the rounding modes on windows...

Original comment by SolusStu...@gmail.com on 11 May 2011 at 10:57

GoogleCodeExporter commented 8 years ago
The FPU rounding mode can be set via _control87 on Windows, see
http://msdn.microsoft.com/en-us/library/e9b52ceh%28v=VS.100%29.aspx

If there's currently no one working on Windows support, I'd be willing to give 
it a try.

Original comment by sschuberth on 23 Jun 2011 at 12:29

GoogleCodeExporter commented 8 years ago
Thanks for the link.  I think that we would have to do something to ensure that 
once we set the mode, the x87 FPU is used rather than the SSE unit (which I 
think most compilers end up choosing by default).  Also, we would probably want 
to wrap both fenv and _control87 behind a wrapper library.

I don't think that anyone is working on this now, although I am tracking it.

If you are willing, I would encourage you to give it a try.  

Original comment by gregory....@gatech.edu on 23 Jun 2011 at 5:28

GoogleCodeExporter commented 8 years ago
Issue 32 has been merged into this issue.

Original comment by gregory....@gatech.edu on 23 Jun 2011 at 10:05

GoogleCodeExporter commented 8 years ago
I'm currently working on compiling gpuocelot with VS2010 and will hopefully be 
able to send some patches to the mailing list soon.

Original comment by sschuberth on 29 Jul 2011 at 4:29

GoogleCodeExporter commented 8 years ago
There is currently support in the source code as well as the build system for 
windows.  I need someone to independently try this out and verify it.

Original comment by gregory....@gatech.edu on 27 Sep 2011 at 5:52

GoogleCodeExporter commented 8 years ago
I'm up. What is needed?

Original comment by basiliom...@gmail.com on 27 Sep 2011 at 5:58

GoogleCodeExporter commented 8 years ago
I added some experimental build instructions to the Installation wiki page.  
You need to make sure that you have all of the prerequisites installed and then 
try out the commands listed.

Original comment by gregory....@gatech.edu on 27 Sep 2011 at 9:27

GoogleCodeExporter commented 8 years ago
any news about this subject? I would like to use it on my windows. Thanks.

Original comment by chantak...@gmail.com on 1 Feb 2012 at 11:37

GoogleCodeExporter commented 8 years ago
I believe this has been resolved quite some time ago already, starting with 
http://code.google.com/p/gpuocelot/source/detail?r=1405

Original comment by sschuberth on 2 Feb 2012 at 9:26

GoogleCodeExporter commented 8 years ago
All right, but I see no version, or public package available for windows... 
there is any possibility to see this?

Thanks.

Original comment by chantak...@gmail.com on 2 Feb 2012 at 4:56

GoogleCodeExporter commented 8 years ago
I'm currently leaving this open until we have a library available on the 
website.

Original comment by SolusStu...@gmail.com on 2 Feb 2012 at 5:08

GoogleCodeExporter commented 8 years ago
Thanks for the info. I will wait for news about it, because I plan to use 
Ocelot in many projects for windows I am developing, I have many cuda codes 
that needs to be executed on AMD GPU or CPU (My desktop currently have a 
low-end Nvidia card, one high-end AMD card, and an 2 x 8 core cpu, and I will 
greatly take benefit if I could use all of them at the same time). Best 
regards. Thanks.

Original comment by chantak...@gmail.com on 2 Feb 2012 at 11:11

GoogleCodeExporter commented 8 years ago
Any news on this?

Original comment by dmitrinesteruk on 30 May 2012 at 8:31

GoogleCodeExporter commented 8 years ago
There is preliminary support for building on windows.  Just run build.py from 
the command line.  

The emulator is supported (although there are a few minor issues with rounding 
modifiers that makes floating point precision slightly different than on linux 
in some rare cares).

The multicore CPU backend has been tested a few times.

The NVIDIA and AMD backends build, but they have not been tested.  

It would be useful to have someone donate a windows machine for running 
regression tests.

Original comment by SolusStu...@gmail.com on 30 May 2012 at 3:48

GoogleCodeExporter commented 8 years ago
Very nice! I am going to try this. But for what I saw, in the code, I feel it 
is a very nice piece of tech, very well written. Thanks very much! 

PS.: I dont found the Opencl backend, it is me, or it is really not present at 
the moment in trunk?

PS.: I saw here to find details about how to build for windows, 
http://code.google.com/p/gpuocelot/wiki/Installation , but, it seems something 
is omitted. A little more details would not hurt.

Original comment by chantak...@gmail.com on 1 Jun 2012 at 10:08

GoogleCodeExporter commented 8 years ago
Hi, is it still possible to get the codes somewhere? I have VS 2010 
Proffesional at my disposal and since my laptop doesnt have NVIDIA card, I 
would like to use Ocelot to emulate it in Windows environment. While I was able 
to get Ocelot working after about day and a half on Ubuntu 12.04, I wont be 
able to use it for active development since everybody around uses VS to develop 
CUDA apps. I can imagine it being pretty painful to keep linux and VS project 
synchronized. I am working on a naive "hybrid" solution involving virtual 
machine with linux and a shared folder containing project sources hosted on the 
host computer. Then, in theory, it could be possible to edit all files in VS, 
switch to virtual machine, compile the stuff in linux and see the result there 
too. Its just a thought, though, how efficient and comfortable that can be, no 
idea.

Still, if I could download the Windows sources for Ocelot from somewhere, I 
would certainly give it a try. Is there still such a place available, please?

Original comment by 1472583...@seznam.cz on 24 Aug 2012 at 7:14

GoogleCodeExporter commented 8 years ago
I've actually managed to get Ocelot to compile under win7 with 2010 pro in both 
32 and 64 bits after some work, but now when I try to link the ocelot.lib it 
complains about missing symbols.

for a very basic program that does nearly nothing:

C:\Users\micha-f\Documents\test>nvcc -m32 -c main.cu
main.cu
tmpxft_0000344c_00000000-5_main.cudafe1.gpu
tmpxft_0000344c_00000000-10_main.cudafe2.gpu
main.cu
tmpxft_0000344c_00000000-5_main.cudafe1.cpp
tmpxft_0000344c_00000000-15_main.ii

C:\Users\micha-f\Documents\test>cl main.obj C:\Programs\Ocelot\lib\ocelot.lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

Microsoft (R) Incremental Linker Version 10.00.40219.01
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:main.exe
main.obj
C:\Programs\Ocelot\lib\ocelot.lib
main.obj : error LNK2019: unresolved external symbol _cudaFree@4 referenced in 
function _main
main.obj : error LNK2019: unresolved external symbol _cudaConfigureCall@32 
referenced in function _main
main.obj : error LNK2019: unresolved external symbol _cudaMemcpy@16 referenced 
in function _main
main.obj : error LNK2019: unresolved external symbol _cudaMalloc@8 referenced 
in function _main
main.obj : error LNK2019: unresolved external symbol _cudaSetupArgument@12 
referenced in function "void __cdecl __device_stub__Z5helloPcPi(char *,int *)" 
(?__device_stub__Z5helloPcPi@@YAXPADPAH@Z)
main.obj : error LNK2019: unresolved external symbol ___cudaRegisterFatBinary@4 
referenced in function "void __cdecl 
__sti____cudaRegisterAll_39_tmpxft_0000344c_00000000_8_main_cpp1_ii_794ab5f2(voi
d)" 
(?__sti____cudaRegisterAll_39_tmpxft_0000344c_00000000_8_main_cpp1_ii_794ab5f2@@
YAXXZ)
main.obj : error LNK2019: unresolved external symbol 
___cudaUnregisterFatBinary@4 referenced in function "void __cdecl 
__cudaUnregisterBinaryUtil(void)" (?__cudaUnregisterBinaryUtil@@YAXXZ)
main.obj : error LNK2019: unresolved external symbol ___cudaRegisterFunction@40 
referenced in function "void __cdecl __nv_cudaEntityRegisterCallback(void * *)" 
(?__nv_cudaEntityRegisterCallback@@YAXPAPAX@Z)
main.obj : error LNK2019: unresolved external symbol _cudaLaunch@4 referenced 
in function "enum cudaError __cdecl cudaLaunch<char>(char *)" 
(??$cudaLaunch@D@@YA?AW4cudaError@@PAD@Z)
main.exe : fatal error LNK1120: 9 unresolved externals

Original comment by laughing...@gmail.com on 19 Oct 2012 at 1:39

GoogleCodeExporter commented 8 years ago
I could definetly see about donating a windows machine to help further develop 
this project (if that's what's really needed, maybe it's actually more devs. 
that is needed?).

Meanwhile I'm also gonna give the windows build a go... How many have been 
successful so far?

Original comment by jipe4...@gmail.com on 18 Aug 2014 at 8:54