Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
local binhost
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Installing Gentoo
View previous topic :: View next topic  
Author Message
lcsavb
n00b
n00b


Joined: 11 Jun 2020
Posts: 51
Location: Bayern / Deutschland

PostPosted: Sun Nov 03, 2024 11:29 am    Post subject: local binhost Reply with quote

Hey!


I would like to use my Dektop with arch Linux and a Threadripper processor to compile packages for my laptop with gentoo and meteor lake.

? I read that binhost is easier than gccdist, right? the march=meteor lake been implemented?

I have to install portage in my arch desktop?

Can I install gentoo using my local binhost ?

We I have used gentoo 5 years ago and I miss it. Glad I am coming back. I have used Gentoo for a couple of years in my 8th gen intel laptop, I thought about doing that because back then it took me 6 hours to compile all the stuff to install Gentoo, so I thought about this solution to make installation/updates faster.

Thanks
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54578
Location: 56N 3W

PostPosted: Sun Nov 03, 2024 11:42 am    Post subject: Reply with quote

There is a wiki page about building in a chroot.
Essentially, you make a chroot on your threadripper that is a copy of the install you want on the laptop.

The devil is in the detail and you have one AMD and one Intel CPU.
see the wiki page. I would post a link but I'm on my phone just now.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
lcsavb
n00b
n00b


Joined: 11 Jun 2020
Posts: 51
Location: Bayern / Deutschland

PostPosted: Sun Nov 03, 2024 12:00 pm    Post subject: Reply with quote

But having a Ryzen in my desktop and an Intel in my laptop would make a difference If I choose the right march?
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 22696

PostPosted: Sun Nov 03, 2024 2:03 pm    Post subject: Reply with quote

The processor mismatch requires you to be more careful with your -march, but a properly chosen value should still work. You need a value that generates code that runs on both the AMD and Intel CPUs. This is well supported, as the binary distributions offer a single download that works for both. They pay for it in the inability to use processor-specific extensions.
Back to top
View user's profile Send private message
Ralphred
l33t
l33t


Joined: 31 Dec 2013
Posts: 656

PostPosted: Sun Nov 03, 2024 5:03 pm    Post subject: Reply with quote

Hu wrote:
The processor mismatch requires you to be more careful with your -march
If we extract/dissect the "-march=native" flags* from each machine, ignore all the -mno<option>s, and craft a COMMON_FLAGS= just composed of the -m<option>s that exists for both CPU's, suffixed with a -mtune=meteorlake, my understanding is that will produce binaries capable of running on both CPU's but optimised for the laptop?

If I do it with for my znver3 and skylake laptop I end up with
Code:
#skylake
-mmmx -mpopcnt -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -mbmi -mbmi2 -maes -mpclmul -madx -mabm -mclflushopt -mcx16 -mf16c -mfsgsbase -mfxsr -msahf -mlzcnt -mmovbe -mprfchw -mrdrnd -mrdseed -msgx -mxsave -mxsavec -mxsaveopt -mxsaves
#znver3
-mmmx -mpopcnt -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -msse4a -mfma -mbmi -mbmi2 -maes -mpclmul -mvpclmulqdq -madx -mabm -mclflushopt -mclwb -mclzero -mcx16 -mf16c -mfsgsbase -mfxsr -msahf -mlzcnt -mmovbe -mmwaitx -mpku -mprfchw -mrdpid -mrdrnd -mrdseed -msha -mshstk -mvaes -mwbnoinvd -mxsave -mxsavec -mxsaveopt -mxsaves
#AND combined
COMMON_FLAGS="-mmmx -mpopcnt -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -mbmi -mbmi2 -maes -mpclmul -madx -mabm -mclflushopt -mcx16 -mf16c -mfsgsbase -mfxsr -msahf -mlzcnt -mmovbe -mprfchw -mrdrnd -mrdseed -mxsave -mxsavec -mxsaveopt -mxsaves -mtune=skylake"
Is this correct or have I got the wrong end of the stick?

*I used gcc -### -march=native -x c - 2>&1|sed -r '/cc1/!d;s/^.* - "-march=[a-z0-9]*"| -mno-[0-9a-z-]*|--param.*//g' but there are other ways.
Back to top
View user's profile Send private message
lcsavb
n00b
n00b


Joined: 11 Jun 2020
Posts: 51
Location: Bayern / Deutschland

PostPosted: Sun Nov 03, 2024 7:36 pm    Post subject: Reply with quote

I asked chatGPT:

" Yes, that's correct. Compiling directly on the target machine typically allows for better optimization because the compiler can take full advantage of the specific architecture and features available on that hardware. Here are some reasons why:

Architecture-Specific Optimizations: The compiler can generate code that leverages the unique capabilities of the target CPU (like specific instruction sets or optimizations).

Performance Tuning: You can fine-tune the build configuration for the target environment, considering factors like cache sizes and memory architecture.

Dependencies: When compiling on the target machine, you ensure that all libraries and dependencies are specifically tailored for that architecture.

Avoiding Compatibility Issues: Compiling on the target helps mitigate potential issues with compatibility between different architectures, such as binary incompatibilities.

If optimal performance is a priority for your application, compiling directly on the Meteor Lake system is the best approach. However, if you're constrained to building on the Threadripper, just be cautious with the flags and dependencies to maximize compatibility."


I will compile everything in my laptop, otherwise I would lose one of the main factors I use Gentoo: extracting all the performance possible.

At the end, it' s about 5%, but it is my fetish.
Back to top
View user's profile Send private message
Ralphred
l33t
l33t


Joined: 31 Dec 2013
Posts: 656

PostPosted: Mon Nov 04, 2024 12:52 am    Post subject: Reply with quote

lcsavb wrote:
I will compile everything in my laptop, otherwise I would lose one of the main factors I use Gentoo: extracting all the performance possible.

At the end, it' s about 5%, but it is my fetish.
You can still use distcc (running in a gentoo chroot) to farm the compiling out to your desktop, and your desktop will create "laptop specific binaries" this way.
https://github.com/KSmanis/docker-gentoo-distcc looks promising too? (well beats maintaining your own chroot IMHO)
Back to top
View user's profile Send private message
lcsavb
n00b
n00b


Joined: 11 Jun 2020
Posts: 51
Location: Bayern / Deutschland

PostPosted: Mon Nov 04, 2024 6:09 am    Post subject: Reply with quote

That’s a great project. Thanks for sharing.

It wouldn’t change the fact processors are discrepant, yet I could sign up for some in the cloud.
Back to top
View user's profile Send private message
Ralphred
l33t
l33t


Joined: 31 Dec 2013
Posts: 656

PostPosted: Mon Nov 04, 2024 1:30 pm    Post subject: Reply with quote

lcsavb wrote:
It wouldn’t change the fact processors are discrepant
It doesn't matter: gcc can produce binaries that can't be run on the machine running gcc, I know I'm not the only person here that compiles binaries for their RaspberryPi or other arm based computer on their x86 desktop or server.

The only reason people are suggesting you not run a cpu specific binhost and to produce binaries compatible with both cpu's is the level of complexity involved in doing it in a chroot in arch. To be honest most gentoo users will just choose to use distcc because a full binhost for a specific cpu requires an almost full replica of the the target system existing on the build pc and in the "target only compatible" chroot. For you that would mean a chroot running gentoo that has nearly all the packages of your laptop, hosting a chroot that does have all the packages of your laptop - this wouldn't be very costly in space and maintenance time. It's totally possible with tools like sys-devel/crossdev, just not very practical.

The docker distcc image is the complete opposite, it's maintained by someone else, will require no maintenance beyond keeping docker working inside arch, and allows you to utilise the core count of your ryzen to do the heavy lifting without losing cpu specific optimisations - don't trust chatGPT on this unless it's only been trained on documents exclusively written by people who cross-compile (a very VERY small percentage of people do it, let alone document it themselves).

Meteor lake support was added as -march=meteorlake and -mtune=meteorlake in ggc-13. A quick look at the gcc source shows it as alderlake with 1 extra extension.
Back to top
View user's profile Send private message
lcsavb
n00b
n00b


Joined: 11 Jun 2020
Posts: 51
Location: Bayern / Deutschland

PostPosted: Mon Nov 04, 2024 5:56 pm    Post subject: Reply with quote

Thanks Ralphred for clarifying.

I will use this container.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Installing Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum