View previous topic :: View next topic |
Author |
Message |
Letharion Veteran
Joined: 13 Jun 2005 Posts: 1344 Location: Sweden
|
Posted: Thu Apr 15, 2010 3:07 pm Post subject: |
|
|
Shining Arcanine wrote: |
When can we expect this to be in portage? |
Until then, is it available in an overlay somewhere? Or do I need install it manually? |
|
Back to top |
|
|
ComaWhite Tux's lil' helper
Joined: 07 Oct 2008 Posts: 125
|
Posted: Thu Apr 15, 2010 9:55 pm Post subject: |
|
|
I want GCC-4.5.0 |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
|
Back to top |
|
|
SpectreDragon Tux's lil' helper
Joined: 22 Aug 2008 Posts: 92 Location: Germany
|
Posted: Thu Apr 15, 2010 10:55 pm Post subject: |
|
|
Letharion wrote: | Shining Arcanine wrote: |
When can we expect this to be in portage? |
Until then, is it available in an overlay somewhere? Or do I need install it manually? |
"recycling" the latest alpha ebuild from the toolchain overlay seems to work without problems. |
|
Back to top |
|
|
tranquilcool Veteran
Joined: 25 Mar 2005 Posts: 1179
|
Posted: Fri Apr 16, 2010 12:28 am Post subject: |
|
|
SpectreDragon wrote: | Letharion wrote: | Shining Arcanine wrote: |
When can we expect this to be in portage? |
Until then, is it available in an overlay somewhere? Or do I need install it manually? |
"recycling" the latest alpha ebuild from the toolchain overlay seems to work without problems. |
recycling here. will report back. _________________ this is a strange strange world. |
|
Back to top |
|
|
Letharion Veteran
Joined: 13 Jun 2005 Posts: 1344 Location: Sweden
|
Posted: Fri Apr 16, 2010 5:10 am Post subject: |
|
|
kernelOfTruth wrote: | ComaWhite wrote: | I want GCC-4.5.0 |
++
MUST COMPILE WORLD - MUST GET BETTER PERFORMANCE - MUST RICE PACKAGES
I need my daily dose
|
Lol. It's funny 'cause it's true ^^
Can't write more now, must go recompile world... |
|
Back to top |
|
|
Tom_ Guru
Joined: 20 May 2004 Posts: 444 Location: France
|
Posted: Fri Apr 16, 2010 8:03 am Post subject: |
|
|
What about LTO ? Is it usable ? Can i add lto flags in my make.conf file ? Would it break my whole system ? |
|
Back to top |
|
|
Uzytkownik Guru
Joined: 31 Oct 2004 Posts: 399 Location: Bay Area, US
|
Posted: Fri Apr 16, 2010 10:58 am Post subject: |
|
|
Are there still problems with kernel? _________________ I've probably left my head... somwhere. Please wait untill I find it. |
|
Back to top |
|
|
Etal Veteran
Joined: 15 Jul 2005 Posts: 1931
|
Posted: Fri Apr 16, 2010 1:06 pm Post subject: |
|
|
Also, in 4.4, the Graphite optimizations were considered pretty safe. What about this new one? Changelog wrote: | Automatic parallelization can be enabled as part of Graphite. In addition to -ftree-parallelize-loops=, specify -floop-parallelize-all | Also, would it actually improve performance? |
|
Back to top |
|
|
wrc1944 Advocate
Joined: 15 Aug 2002 Posts: 3435 Location: Gainesville, Florida
|
Posted: Fri Apr 16, 2010 2:17 pm Post subject: |
|
|
I also run Arch "testing," and just noticed on my weekly "pacman -Syu" (similar to emerge --sync and then emerge -uD @world) that gcc-4.5.0-1-x86_64 is in the updates, so I assume all the other packages in that repo have been compiled with gcc-4.5.0. I never have had any more trouble running Arch Linux "testing" than I do with Gentoo ~x86 and ~amd64, so hopefully it will be in Gentoo ~Arch very soon. _________________ Main box- AsRock x370 Gaming K4
Ryzen 7 3700x, 3.6GHz, 16GB GSkill Flare DDR4 3200mhz
Samsung SATA 1000GB, Radeon HD R7 350 2GB DDR5
OpenRC Gentoo ~amd64 plasma, glibc-2.36-r7, gcc-13.2.1_p20230304
kernel-6.8.4 USE=experimental python3_11 |
|
Back to top |
|
|
SamuliSuominen Retired Dev
Joined: 30 Sep 2005 Posts: 2133 Location: Finland
|
Posted: Fri Apr 16, 2010 2:47 pm Post subject: |
|
|
wrc1944 wrote: | I also run Arch "testing," and just noticed on my weekly "pacman -Syu" (similar to emerge --sync and then emerge -uD @world) that gcc-4.5.0-1-x86_64 is in the updates, so I assume all the other packages in that repo have been compiled with gcc-4.5.0. I never have had any more trouble running Arch Linux "testing" than I do with Gentoo ~x86 and ~amd64, so hopefully it will be in Gentoo ~Arch very soon. |
I wouldn't make such assumptions... I bet most, if not all, the packages in the repo are still compiled with GCC 4.4.x or some even GCC 4.3.x still. Such mass-rebuilds are not required for most GCC updates. |
|
Back to top |
|
|
saellaven l33t
Joined: 23 Jul 2006 Posts: 648
|
Posted: Fri Apr 16, 2010 4:47 pm Post subject: |
|
|
AM088 wrote: | Also, in 4.4, the Graphite optimizations were considered pretty safe. What about this new one? Changelog wrote: | Automatic parallelization can be enabled as part of Graphite. In addition to -ftree-parallelize-loops=, specify -floop-parallelize-all | Also, would it actually improve performance? |
from my reading, -floop-parallelize-all will parallelize all loops without checking to see if it is actually an optimization to do so.
Quote: |
floop-parallelize-all
Use the Graphite data dependence analysis to identify loops that can be parallelized. Parallelize all the loops that can be analyzed to not contain loop carried dependences without checking that it is profitable to parallelize the loops.
-ftree-parallelize-loops=n
Parallelize loops, i.e., split their iteration space to run in n threads. This is only possible for loops whose iterations are independent and can be arbitrarily reordered. The optimization is only profitable on multiprocessor machines, for loops that are CPU-intensive, rather than constrained e.g. by memory bandwidth. This option implies -pthread, and thus is only supported on targets that have support for -pthread. |
_________________ Ryzen 3700X, Asus Prime X570-Pro, 64 GB DDR4 3200, GeForce GTX 1660 Super
openrc-0.17, ~vanilla-sources, ~nvidia-drivers, ~gcc |
|
Back to top |
|
|
Shining Arcanine Veteran
Joined: 24 Sep 2009 Posts: 1110
|
Posted: Fri Apr 16, 2010 6:46 pm Post subject: |
|
|
Does -floop-parallelize-all affect thread parallelization, vector parallelization or both thread and vector parallelization? |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
Posted: Fri Apr 16, 2010 7:40 pm Post subject: |
|
|
Shining Arcanine wrote: | Does -floop-parallelize-all affect thread parallelization, vector parallelization or both thread and vector parallelization? |
I'd like to know that too
some info on graphite parallelization:
http://gcc.gnu.org/wiki/Graphite/Parallelization
http://gcc.gnu.org/wiki/AutoparRelated
also interesting might be the software-pipelining stuff:
swing modulo scheduling:
Quote: | -freschedule-modulo-scheduled-loops
The modulo scheduling comes before the traditional scheduling, if a loop was modulo scheduled we may want to prevent the later scheduling passes from changing its schedule, we use this option to control that.
-fmodulo-sched
Perform swing modulo scheduling immediately before the first scheduling pass. This pass looks at innermost loops and reorders their instructions by overlapping different iterations.
-fmodulo-sched-allow-regmoves
Perform more aggressive SMS based modulo scheduling with register moves allowed. By setting this flag certain anti-dependences edges will be deleted which will trigger the generation of reg-moves based on the life-range analysis. This option is effective only with -fmodulo-sched enabled. |
selective scheduling algorithm:
Quote: | -fselective-scheduling
Schedule instructions using selective scheduling algorithm. Selective scheduling runs instead of the first scheduler pass.
-fselective-scheduling2
Schedule instructions using selective scheduling algorithm. Selective scheduling runs instead of the second scheduler pass.
-fsel-sched-pipelining
Enable software pipelining of innermost loops during selective scheduling. This option has no effect until one of -fselective-scheduling or -fselective-scheduling2 is turned on.
-fsel-sched-pipelining-outer-loops
When pipelining loops during selective scheduling, also pipeline outer loops. This option has no effect until -fsel-sched-pipelining is turned on. |
_________________ https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa
Hardcore Gentoo Linux user since 2004 |
|
Back to top |
|
|
SpectreDragon Tux's lil' helper
Joined: 22 Aug 2008 Posts: 92 Location: Germany
|
Posted: Fri Apr 16, 2010 10:41 pm Post subject: |
|
|
I think I just killed my portage while experimenting with "-ftree-parallelize-loops="
after compiling "dev-db/sqlite" portage is not able to find the corresponding python module.
Code: | Traceback (most recent call last):
File "/usr/lib64/portage/bin/ebuild", line 129, in <module>
if ebuild_portdir not in portage.portdb.porttrees:
File "/usr/lib64/portage/pym/portage/proxy/objectproxy.py", line 23, in __getattribute__
result = object.__getattribute__(self, '_get_target')()
File "/usr/lib64/portage/pym/portage/__init__.py", line 568, in _get_target
return _get_legacy_global(name)
File "/usr/lib64/portage/pym/portage/_legacy_globals.py", line 15, in _get_legacy_global
portage.portdb = portage.db[portage.root]["porttree"].dbapi
File "/usr/lib64/portage/pym/portage/util/__init__.py", line 1121, in __getitem__
result = lazy_item.func(*pargs, **kwargs)
File "/usr/lib64/portage/pym/portage/dbapi/porttree.py", line 1202, in __init__
self.dbapi = portdbapi(mysettings=settings)
File "/usr/lib64/portage/pym/portage/dbapi/porttree.py", line 354, in __init__
self.auxdbmodule = self.settings.load_best_module("portdbapi.auxdbmodule")
File "/usr/lib64/portage/pym/portage/package/ebuild/config.py", line 1165, in load_best_module
mod = load_mod(best_mod)
File "/usr/lib64/portage/pym/portage/__init__.py", line 397, in load_mod
mod = __import__(modname)
File "/usr/lib64/portage/pym/portage/cache/sqlite.py", line 16, in <module>
from pysqlite2 import dbapi2 as db_module
ImportError: No module named pysqlite2 |
anyone here with a good idea to fix that without the need of replacing too many parts of the system?
portage seems to be crushed completely. |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
|
Back to top |
|
|
tranquilcool Veteran
Joined: 25 Mar 2005 Posts: 1179
|
Posted: Fri Apr 16, 2010 11:29 pm Post subject: |
|
|
a few packages don't compile with gcc-4.5.0.
-flto doesn't work for most packages.
firefox and thunderbird = Segmentation fault.
so far so good. _________________ this is a strange strange world. |
|
Back to top |
|
|
SpectreDragon Tux's lil' helper
Joined: 22 Aug 2008 Posts: 92 Location: Germany
|
Posted: Fri Apr 16, 2010 11:30 pm Post subject: |
|
|
kernelOfTruth wrote: | I dunno,
temporarily commenting out:
Code: | portdbapi.auxdbmodule = cache.sqlite.database |
in /etc/portage/modules ? |
thx.. you just saved me a lot of unnecessary recovery work (portage working again) |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
|
Back to top |
|
|
Ormaaj Guru
Joined: 28 Jan 2008 Posts: 319
|
Posted: Sat Apr 17, 2010 12:25 pm Post subject: |
|
|
kernelOfTruth wrote: | ok, what do I need to set up
Quote: |
-floop-parallelize-all -ftree-parallelize-loops=4 |
properly ?
any Quote: | -lpthread -lgomp -pthread -fopenmp |
voodoo magic in my cflags, cxxflags, ldflags ?
or is -floop-parallelize-all -ftree-parallelize-loops=4 enough ? | I'm wondering this as well. It seems odd that the necessary flags aren't just enabled as a part of -O2 or -O3. I know there are some new graphite things which should be reasonably safe but I don't know which ones are "generally applicable" as optimizations for the entire system. |
|
Back to top |
|
|
Neo2 Apprentice
Joined: 25 Sep 2006 Posts: 224 Location: Italy
|
Posted: Sat Apr 17, 2010 4:30 pm Post subject: |
|
|
I don't think there should be any need for additional libs for graphite parallelization support.
Quoting the GCC manual (4.5, of course):
Quote: | -floop-parallelize-all
Use the Graphite data dependence analysis to identify loops that can be parallelized. Parallelize all the loops that can be analyzed to not contain loop carried dependences without checking that it is profitable to parallelize the loops.
-ftree-parallelize-loops=n
Parallelize loops, i.e., split their iteration space to run in n threads. This is only possible for loops whose iterations are independent and can be arbitrarily reordered. The optimization is only profitable on multiprocessor machines, for loops that are CPU-intensive, rather than constrained e.g. by memory bandwidth. This option implies -pthread, and thus is only supported on targets that have support for -pthread. |
I think that nothing should be given and GCC will import automatically what it needs from -pthread.
Please note that this is not a link-time optimization, but rather a compile-time optimization.
If I understand well what the manual says, GCC tries to add a little overhead (importing code from -pthread) at the beginning of loops that can be parallelized to parallelize them.
I think that this should be able to turn any single-threaded single-core application into a multi-core application for certain loops, but not into a multi-threaded one (that is, the program should take advantage of this only in the specific, optimized parts).
Hope to be correct =)
Cheers _________________ Neo2
Unofficial minimal liveCD for x86/amd64 w/reiser4+truecrypt |
|
Back to top |
|
|
pigeon768 l33t
Joined: 02 Jan 2006 Posts: 683
|
Posted: Sat Apr 17, 2010 6:28 pm Post subject: |
|
|
I expect there to be very few loops which can actually be accelerated by the optimization in question. And in many of those instances, the overhead involved with creating a new thread will do more harm than good.
That being said, I have an atom-based eeepc, and I am ecstatic over the -march=atom option. When will an ebuild show up in portage or the toolchain overlay? |
|
Back to top |
|
|
kernelOfTruth Watchman
Joined: 20 Dec 2005 Posts: 6111 Location: Vienna, Austria; Germany; hello world :)
|
Posted: Sat Apr 17, 2010 6:49 pm Post subject: |
|
|
pigeon768 wrote: | I expect there to be very few loops which can actually be accelerated by the optimization in question. And in many of those instances, the overhead involved with creating a new thread will do more harm than good.
That being said, I have an atom-based eeepc, and I am ecstatic over the -march=atom option. When will an ebuild show up in portage or the toolchain overlay? |
just use the one provided in the
hardened-dev overlay
that way you even have the additional possibility to harden your system
FWIW it now also uses -march=atom -mtune=core2 for core i7 processors _________________ https://github.com/kernelOfTruth/ZFS-for-SystemRescueCD/tree/ZFS-for-SysRescCD-4.9.0
https://github.com/kernelOfTruth/pulseaudio-equalizer-ladspa
Hardcore Gentoo Linux user since 2004 |
|
Back to top |
|
|
Neo2 Apprentice
Joined: 25 Sep 2006 Posts: 224 Location: Italy
|
Posted: Sat Apr 17, 2010 6:58 pm Post subject: |
|
|
@pigeon768: I totally agree with you on that. Considering that what the average user uses desktop applications which require very little cpu-intensive work, that is going to waste cpu cycles at compile time. I'm wondering what which benefits could add to the toolchain though. Provided I am used to compile with MAKEOPTS="-j32" and emerge -j10, I guess I shouldn't bother that much
Maybe it could be useful on single-core video transcoding apps?
[edit]
@kernelOfTruth: isn't -march= -mtune= redundant/conflicting?
Quote: | -mtune=cpu-type
Tune to cpu-type everything applicable about the generated code, except for the ABI and the set of available instructions. The choices for cpu-type are:
generic
Produce code optimized for the most common IA32/AMD64/EM64T processors. If you know the CPU on which your code will run, then you should use the corresponding -mtune option instead of -mtune=generic. But, if you do not know exactly what CPU users of your application will have, then you should use this option.
As new processors are deployed in the marketplace, the behavior of this option will change. Therefore, if you upgrade to a newer version of GCC, the code generated option will change to reflect the processors that were most common when that version of GCC was released.
There is no -march=generic option because -march indicates the instruction set the compiler can use, and there is no generic instruction set applicable to all processors. In contrast, -mtune indicates the processor (or, in this case, collection of processors) for which the code is optimized.
native
This selects the CPU to tune for at compilation time by determining the processor type of the compiling machine. Using -mtune=native will produce code optimized for the local machine under the constraints of the selected instruction set. Using -march=native will enable all instruction subsets supported by the local machine (hence the result might not run on different machines).
...
-march=cpu-type
Generate instructions for the machine type cpu-type. The choices for cpu-type are the same as for -mtune. Moreover, specifying -march=cpu-type implies -mtune=cpu-type.
|
[/edit] _________________ Neo2
Unofficial minimal liveCD for x86/amd64 w/reiser4+truecrypt |
|
Back to top |
|
|
Ormaaj Guru
Joined: 28 Jan 2008 Posts: 319
|
Posted: Sat Apr 17, 2010 7:09 pm Post subject: |
|
|
Is the gold linker required to get any benefit out of -flto ? |
|
Back to top |
|
|
|