From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 91F0513832E for ; Fri, 19 Aug 2016 18:21:05 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id D016CE0B27; Fri, 19 Aug 2016 18:20:56 +0000 (UTC) Received: from mail-qk0-f194.google.com (mail-qk0-f194.google.com [209.85.220.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id C70CFE0A86 for ; Fri, 19 Aug 2016 18:20:55 +0000 (UTC) Received: by mail-qk0-f194.google.com with SMTP id r128so4787759qkc.1 for ; Fri, 19 Aug 2016 11:20:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pathscale-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-transfer-encoding; bh=vVkG1MRBOIg53y+pF/NoJfCL//5cSOuZJVCyU76N8yY=; b=Fg5OLl6sFtigcNARdYClqqxwKaTpPaUIRVXP3IbrzTvgzGTHWmiDRY8kdWeXTWqnDR 9ifwWxpV8gVUrrYjfVy/e7xuzu6vcXkKnJEQMvd3ipHQ8r+rIvNbyqczM/tBfFKQZcs+ qTLPV+7ibBic+PEYcws9j4A5HRfW33kzr6PJQ10bF3a6YYAAICwt4mc3MvFGxXuC4FRU jB1JIlNdzCZoh2a5Yl993hx+BZ6htXzXx2X8gdlqwv98qAM28YApxfl8Rrb0CayC4Gcu Sro2AGASKsxXGuf1O0cTp4TtIngNgiHk+bxNtMgsxi7dVuoW2RqQ0R+dPzkBDIdLFRrY Ydkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-transfer-encoding; bh=vVkG1MRBOIg53y+pF/NoJfCL//5cSOuZJVCyU76N8yY=; b=ljHxyFileoXf8x7f+6fUAV2j+kfq+RZMFn7iesCzlfZ1cQruMD/lTvKCviT71X2NO9 tT9Y51yC6cFfZPMddHvzeBRtaCKGMzBL/5fTtwKRfsySUJfMNjcd/W+0W+SQpWlCKDmg ifOFek8JhSICkih94J5wEE1kZjlFwaEZTJxU21v2SwZd/DL8oxHaUyBXVTQPaY5n2D/i gWJ0iOO47RcIAX0C+cFnncAGJjByNd2xmoStqat3nROkRYBaZsCnl1jwPGIo0CjoDkm4 cLi9thK0+BqtyESHsPoHrSIc55KG8Alf19Jv7Gf1ZjbUbrDTlwyI74xdL8IDYRcHwE/3 DvaQ== X-Gm-Message-State: AEkooutjx2wmkklsQGJOgfaFKOHcqynNxjlQSu73sAoxmKOAZ8xbo7dBrgf/LMbrSl2Fr2REdlaQ86sDBxaaCQ== X-Received: by 10.55.204.199 with SMTP id n68mr9955102qkl.209.1471630854252; Fri, 19 Aug 2016 11:20:54 -0700 (PDT) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 Received: by 10.140.22.6 with HTTP; Fri, 19 Aug 2016 11:20:33 -0700 (PDT) X-Originating-IP: [115.87.2.110] In-Reply-To: <1b9f33d3-3807-bf55-f021-3ecfb0654c7d@verizon.net> References: <20160816182204.61c27681.mgorny@gentoo.org> <20160819020737.5419083.98443.119986@pathscale.com> <36efd7a3-ce51-43ed-8aef-e1d6d79a4e5d@gentoo.org> <1b9f33d3-3807-bf55-f021-3ecfb0654c7d@verizon.net> From: =?UTF-8?B?QyBCZXJnc3Ryw7Zt?= Date: Sat, 20 Aug 2016 02:20:33 +0800 Message-ID: Subject: Re: [gentoo-dev] New project: LLVM To: "Anthony G. Basile" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Archives-Salt: e8e4ca94-38ef-4a17-a47d-4ccfdf7cbd55 X-Archives-Hash: 71ae26b2db51558daa81be49d0d131d5 Sorry to be the party crasher, but... I'd love to have optimizations for everything out there, but it takes a lot of work to fine tune for something specific. Right now I see a few variants of ARMv8 ------------ ARM reference stuff - A57 cores and the newer bits.. The scheduling and stuff seems more-or-less similar enough that one tuning could probably work for the vast majority of these parts. Cavium ThunderX - It's ground up and quite different from the ARM reference stuff under the hood APM - Mustang, again ground up and different. I don't have enough hands on to know how different from reference. Broadcom - Coming Soon(tm) - Again no hands on or any data, but certainly very interesting.. ... now add in every variant of ground up implementation and you have 50 shades of gray.. ------------- Soo.. depending on your target hardware, you may be better off with gcc if the end goal is general all-around performance. (It does a quite respectable job of being generic) I realize a lot of people have strong feelings for or against it. I leave that to the reader to decide.. Back to my own glass house.. It will take a few years, but I am trying to make it easier (internally) to expose in some clear way all the pieces which compose a fine tuning per-processor. If this was "just" scheduling models it would be really easy, but it's not.. Those latencies and other magic bits decide things like.. "should I unroll this loop or do something else" and then you venture into the land of accelerators where a custom regalloc may be what you really need and *nothing* off the shelf fits to meet your goals.. (projects like that can take 9 months and in the end only give a general 1-5% median performance gain..) -------------- On Sat, Aug 20, 2016 at 2:02 AM, james wrote: > On 08/19/2016 11:15 AM, C Bergstr=C3=B6m wrote: >> >> On Fri, Aug 19, 2016 at 11:01 PM, Luca Barbato wrot= e: >>> >>> BTW is pathscale ready to be used as system compiler as well? >> >> >> I wish, but no. We have known issues when building grub2, glibc and >> the Linux kernel at the very least. Someone* did report a long time >> ago that with their unofficial port, were able to build/boot the >> NetBSD kernel. >> (*A community dev we trusted with our sources and was helping us with >> portability across platforms) >> >> The stuff with grub2 may potentially be fixed in the "near" future... >> the others are more tricky. In general if clang can do it, we have a >> strong chance as well. >> >> As a philosophy - "we" aren't really trying to be the best generic >> compiler in the world. We aim more on optimizing as much for known >> targets. So if by system you mean, a compiler that would produce an >> "OS" which only runs on a single class of hardware, then yeah it could >> work at some point in the future. Specifically, on x86 we default on >> host CPU optimizations. So on newer Intel hardware it's easy to get a >> binary that won't run on AMD or older 64bit Intel. >> >> More recently on ARMv8 - we turn on processor specific tuning. So >> while it may "run", the difference between APM's mustang and Cavium >> ThunderX is pretty big and running binaries intended for A and ran on >> B would certainly take a hit.. (this is just the tip of the iceberg) >> >> For general scalar OS code it isn't likely to matter... the real >> impact being like 1-10% difference (being very general.. it could be >> less or more in the real world..) >> >> For HPC codes or anything where you get loops or computationally >> complex - the gloves are off and I could see big differences... (again >> being general and maybe a bit dramatic for fun) > > > > OK (actually fantastic!). Looking at the pathscale site pages and github, > perhaps a cheap arm embedded board where llvm is the centerpiece of > compiling a minimal system to entice gentoo-llvm testers, would be possib= le > in the near future?. I have a 96boards, HiKey arm64v8 that I could dedic= ate > to gentoo+armv8-llvm testing, if that'd help. [1] > > Perhaps a baseline bootstrap iso (or such) version targeted at > llvm-centric testers on x86-64 or armv8 ? Skip grub2 and use grub-legacy = or > lilo or (?), since there seems to be issues with llvm-grub2. > > > [1] http://dev.gentoo.org/~tgall/ > > > No matter how you slice it, from someone who is focused on building > minimized and embedded (bare metal) systems that are customized and > coalesced into a heterogeneous gentoo cluster for HPC, this is wonderful > news. Finally a vendor in the cluster space, with some vision and > common-sense, imho. Heterogeneous and open HPC is where is at, imho. If > there is a forum where the community and pathscale folks discuss issues, > point that out as I could not find one for deeper reading.... > > > hth, > James >