[split] Compiler off-loading discussion

Moderators: Rachael, dpJudas

User avatar
Rachael
Developer
Developer
Posts: 3617
Joined: Sat May 13, 2006 10:30

Re: [split] Compiler off-loading discussion

Post by Rachael » Tue Nov 29, 2016 0:40

Code: Select all

Microsoft Visual Studio 2015 Version 14.0.25123.0.
Copyright (C) Microsoft Corp. All rights reserved.
1>------ Build started: Project: drawergen, Configuration: RelWithDebInfo x64 ------
2>------ Build started: Project: revision_check, Configuration: RelWithDebInfo x64 ------
1>  Building Custom Rule P:/Users/Rachael/Desktop/QZDoom/tools/drawergen/CMakeLists.txt
1>  CMake does not need to re-run because P:\Users\Rachael\Desktop\build\QZDoom\tools\drawergen\CMakeFiles\generate.stamp is up-to-date.
1>cl : Command line warning D9002: ignoring unknown option '/arch:SSE2'
1>  precomp.cpp
2>  src/gitinfo.h is up to date at commit q1.1pre-271-g0989129.
1>cl : Command line warning D9002: ignoring unknown option '/arch:SSE2'
1>  drawergen.cpp
1>  ssa_bool.cpp
1>  ssa_float.cpp
1>  ssa_float_ptr.cpp
1>  ssa_for_block.cpp
1>  ssa_function.cpp
1>  ssa_if_block.cpp
1>  ssa_int.cpp
1>  ssa_int_ptr.cpp
1>  ssa_short.cpp
1>  ssa_scope.cpp
1>  ssa_struct_type.cpp
1>  ssa_ubyte.cpp
1>  ssa_ubyte_ptr.cpp
1>  ssa_value.cpp
1>  ssa_vec4f.cpp
1>  ssa_vec4f_ptr.cpp
1>  ssa_vec4i.cpp
1>  ssa_vec4i_ptr.cpp
1>  ssa_vec8s.cpp
1>  Generating Code...
1>  Compiling...
1>  ssa_vec16ub.cpp
1>  drawercodegen.cpp
1>  drawspancodegen.cpp
1>  drawwallcodegen.cpp
1>  drawcolumncodegen.cpp
1>  drawskycodegen.cpp
1>  drawtrianglecodegen.cpp
1>  Generating Code...
1>LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/OPT:ICF' specification
1>  drawergen.vcxproj -> P:\Users\Rachael\Desktop\build\QZDoom\tools\drawergen\RelWithDebInfo\drawergen.exe
1>  drawergen.vcxproj -> P:/Users/Rachael/Desktop/build/QZDoom/tools/drawergen/RelWithDebInfo/drawergen.pdb (Full PDB)
3>------ Build started: Project: drawergen_target, Configuration: RelWithDebInfo x64 ------
3>  Building Custom Rule P:/Users/Rachael/Desktop/QZDoom/src/CMakeLists.txt
3>  CMake does not need to re-run because P:\Users\Rachael\Desktop\build\QZDoom\src\CMakeFiles\generate.stamp is up-to-date.
3>  Compiling drawer code for pentium4..
4>------ Build started: Project: zdoom, Configuration: RelWithDebInfo x64 ------
4>LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/OPT:ICF' specification
4>LINK : fatal error LNK1181: cannot open input file 'P:\Users\Rachael\Desktop\build\QZDoom\src\r_drawersasm.obj'
5>------ Build started: Project: brightmaps_pk3, Configuration: RelWithDebInfo x64 ------
6>------ Build started: Project: lights_pk3, Configuration: RelWithDebInfo x64 ------
7>------ Build started: Project: qzdoom_pk3, Configuration: RelWithDebInfo x64 ------
6>  Generating ../lights.pk3
7>  Generating ../qzdoom.pk3
6>  P:/Users/Rachael/Desktop/build/QZDoom/lights.pk3 contains 4 files (updated 0)
5>  Generating ../brightmaps.pk3
5>  P:/Users/Rachael/Desktop/build/QZDoom/brightmaps.pk3 contains 499 files (updated 0)
7>  P:/Users/Rachael/Desktop/build/QZDoom/qzdoom.pk3 contains 636 files (updated 0)
8>------ Skipped Build: Project: INSTALL, Configuration: RelWithDebInfo x64 ------
8>Project not selected to build for this solution configuration
========== Build: 6 succeeded, 1 failed, 13 up-to-date, 1 skipped ==========
The output is similar for 32-bit as well.
Spoiler: Zen Sarcasm

dpJudas
Developer
Developer
Posts: 798
Joined: Sat Jul 23, 2016 7:53

Re: [split] Compiler off-loading discussion

Post by dpJudas » Tue Nov 29, 2016 1:01

Hmm, so it is running it but still not working. Weird. Is there a r_drawersasm.obj file next to the r_*.cpp files in the src folder?

User avatar
Rachael
Developer
Developer
Posts: 3617
Joined: Sat May 13, 2006 10:30

Re: [split] Compiler off-loading discussion

Post by Rachael » Tue Nov 29, 2016 1:07

Yes, there is.

Code: Select all

11/28/2016  03:26 PM            26,160 r_drawers.cpp
11/28/2016  03:26 PM            12,459 r_drawers.h
11/28/2016  06:07 PM         2,127,308 r_drawersasm.obj
               3 File(s)      2,165,927 bytes
If I had to take a wild guess, shouldn't it be outputting to the build folder? I get the impression that the source folder should not even be touched by the entire build process, although I can understand if you were doing this just to get it working.
Spoiler: Zen Sarcasm

dpJudas
Developer
Developer
Posts: 798
Joined: Sat Jul 23, 2016 7:53

Re: [split] Compiler off-loading discussion

Post by dpJudas » Tue Nov 29, 2016 1:14

Try add the following to drawergen.cpp:

Code: Select all

#include <chrono>
#include <thread>

...

int main(int argc, char **argv)
{
	...

	using namespace std::chrono_literals;
	std::this_thread::sleep_for(2s); // Doh! Silly OS if this works!
	return 0;
}
The main function is at the bottom of the file.

User avatar
Rachael
Developer
Developer
Posts: 3617
Joined: Sat May 13, 2006 10:30

Re: [split] Compiler off-loading discussion

Post by Rachael » Tue Nov 29, 2016 1:17

Code: Select all

1>P:\Users\Rachael\Desktop\QZDoom\tools\drawergen\drawergen.cpp(663): error C3083: 'this_thread': the symbol to the left of a '::' must be a type
1>P:\Users\Rachael\Desktop\QZDoom\tools\drawergen\drawergen.cpp(663): error C2039: 'sleep_for': is not a member of 'std'
1>  P:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\iostream(12): note: see declaration of 'std'
1>P:\Users\Rachael\Desktop\QZDoom\tools\drawergen\drawergen.cpp(663): error C3688: invalid literal suffix 's'; literal operator or literal operator template 'operator ""s' not found
1>P:\Users\Rachael\Desktop\QZDoom\tools\drawergen\drawergen.cpp(663): error C3861: 'sleep_for': identifier not found
Spoiler: Zen Sarcasm

dpJudas
Developer
Developer
Posts: 798
Joined: Sat Jul 23, 2016 7:53

Re: [split] Compiler off-loading discussion

Post by dpJudas » Tue Nov 29, 2016 1:20

Eruanna wrote:If I had to take a wild guess, shouldn't it be outputting to the build folder? I get the impression that the source folder should not even be touched by the entire build process, although I can understand if you were doing this just to get it working.
Ideally yes, but I got a bit lazy because then I had to figure out how to use that path in the CMakeLists.txt file. The gitinfo.h file was getting dumped in that location, so I just did the same. You're welcome to clean up my mess. :D

@compile errors: I checked in the sleep now, maybe easier that way.

User avatar
Rachael
Developer
Developer
Posts: 3617
Joined: Sat May 13, 2006 10:30

Re: [split] Compiler off-loading discussion

Post by Rachael » Tue Nov 29, 2016 1:29

Yeah, that didn't work either. It's expecting it in /build/QZDoom/src/ but it's in the actual source folder.

I'll see what I can do to coax it to put it in the proper location.
Spoiler: Zen Sarcasm

User avatar
Rachael
Developer
Developer
Posts: 3617
Joined: Sat May 13, 2006 10:30

Re: [split] Compiler off-loading discussion

Post by Rachael » Tue Nov 29, 2016 1:50

Fixed.

Don't hate me, please. >_>

*hides, just in case*
Spoiler: Zen Sarcasm

dpJudas
Developer
Developer
Posts: 798
Joined: Sat Jul 23, 2016 7:53

Re: [split] Compiler off-loading discussion

Post by dpJudas » Tue Nov 29, 2016 1:54

Seems to be working here as well. :)

User avatar
Rachael
Developer
Developer
Posts: 3617
Joined: Sat May 13, 2006 10:30

Re: [split] Compiler off-loading discussion

Post by Rachael » Tue Nov 29, 2016 2:15

Now the linker is searching for the .obj file in the source tree, instead. >_> I think CMake just hates me.
Spoiler: Zen Sarcasm

dpJudas
Developer
Developer
Posts: 798
Joined: Sat Jul 23, 2016 7:53

Re: [split] Compiler off-loading discussion

Post by dpJudas » Tue Nov 29, 2016 2:32

Lol, maybe you can persuade it by typing the full path in the locations it is referenced in the CMakeLists.txt file.

User avatar
Rachael
Developer
Developer
Posts: 3617
Joined: Sat May 13, 2006 10:30

Re: [split] Compiler off-loading discussion

Post by Rachael » Tue Nov 29, 2016 2:34

Already done.

But I noticed that line is not .[o|obj] aware. So it's quite likely this doesn't work on Mac or Linux.

On the bright side - we have dev builds again.

On the not so bright side though - they're slower than my 10 year old computer. :P >_> *hides*
Spoiler: Zen Sarcasm

dpJudas
Developer
Developer
Posts: 798
Joined: Sat Jul 23, 2016 7:53

Re: [split] Compiler off-loading discussion

Post by dpJudas » Tue Nov 29, 2016 2:50

You mean you're noticing a performance drop when running it now?

User avatar
Rachael
Developer
Developer
Posts: 3617
Joined: Sat May 13, 2006 10:30

Re: [split] Compiler off-loading discussion

Post by Rachael » Tue Nov 29, 2016 5:35

Yeah, it's a bit slower than it used to be.

Actually - nevermind, it seems to be about the same speed, I used actual tools to measure it and it's about the same.
Spoiler: Zen Sarcasm

dpJudas
Developer
Developer
Posts: 798
Joined: Sat Jul 23, 2016 7:53

Re: [split] Compiler off-loading discussion

Post by dpJudas » Tue Nov 29, 2016 8:13

I am actually a little surprised that we aren't seeing a drop. I'm 100% sure that it used AVX instructions earlier (that's why it was crashing for those older CPUs), and I would have expected that to amount to a measurable difference. Now we only use SSE 2 and still get same speed. CPU's are weird!

Locked

Return to “Closed Suggestions”