From owner-freebsd-questions@freebsd.org Sun Feb 10 23:05:52 2019 Return-Path: Delivered-To: freebsd-questions@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 52F0B14E0726 for ; Sun, 10 Feb 2019 23:05:52 +0000 (UTC) (envelope-from phascolarctos@protonmail.ch) Received: from mail-40132.protonmail.ch (mail-40132.protonmail.ch [185.70.40.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.protonmail.ch", Issuer "SwissSign Server Silver CA 2014 - G22" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id ED88470A40 for ; Sun, 10 Feb 2019 23:05:50 +0000 (UTC) (envelope-from phascolarctos@protonmail.ch) Date: Sun, 10 Feb 2019 23:05:35 +0000 To: FreeBSD Questions From: Lorenzo Salvadore Reply-To: Lorenzo Salvadore Subject: Re: any way asm people could contribute? Message-ID: <05n3-fHzR44Ry6I77tO5onCnzamRXA43bT1kU2YMx6dZI8DZw9DSnlvqrx0rCRON_JwaU4Utn8XlxuG5PjpaDcugLoWPu8tl6Z40xpSAa_M=@protonmail.ch> In-Reply-To: <20190210224610.bjx6a5jchi7rb6tg@blueeyes.stuffed.animals> References: <20190210213504.0B9E5200E1BA25@ary.qy> <20190210224610.bjx6a5jchi7rb6tg@blueeyes.stuffed.animals> Feedback-ID: X6az_D2smWSR8MT5MHqXnWF0upxehDyHia7Id1cbayHNBUkRu3CIeusDsZHiivIIjmaKB1_OofpALrRUYjNz3w==:Ext:ProtonMail MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=7.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mail.protonmail.ch X-Rspamd-Queue-Id: ED88470A40 X-Spamd-Bar: ------ X-Spamd-Result: default: False [-6.77 / 15.00]; HAS_REPLYTO(0.00)[phascolarctos@protonmail.ch]; R_SPF_ALLOW(-0.20)[+ip4:185.70.40.0/24]; TO_DN_ALL(0.00)[]; MX_GOOD(-0.01)[cached: mailsec.protonmail.ch]; DKIM_TRACE(0.00)[protonmail.ch:+]; DMARC_POLICY_ALLOW(-0.50)[protonmail.ch,quarantine]; NEURAL_HAM_SHORT(-0.90)[-0.901,0]; RCVD_COUNT_ZERO(0.00)[0]; RCVD_IN_DNSWL_LOW(-0.10)[132.40.70.185.list.dnswl.org : 127.0.5.1]; FROM_EQ_ENVFROM(0.00)[]; SUBJECT_ENDS_QUESTION(1.00)[]; ASN(0.00)[asn:19905, ipnet:185.70.40.0/24, country:US]; MIME_TRACE(0.00)[0:+]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[protonmail.ch.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[protonmail.ch:s=default]; REPLYTO_EQ_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(-3.76)[ip: (-9.87), ipnet: 185.70.40.0/24(-4.91), asn: 19905(-3.92), country: US(-0.07)]; RCPT_COUNT_ONE(0.00)[1]; RCVD_TLS_ALL(0.00)[] X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Feb 2019 23:05:52 -0000 > On Sun, Feb 10, 2019 at 04:35:03PM -0500, John Levine wrote: > > > In article U-T5V9GBTMH0X4T_hYmtSc4B19QRNPzkirSo_g45l-czdcQaEvhYekzafkZc= QOM_Nb9IQ6Qx3EXEQ-aeRrDJkPrqMnQky88TZZlDfr9iTGA=3D@protonmail.ch you write: > > > > > If anyone can give more precise information about how to > > > contribute in assembly language, I would find it interesting too. > > > > I think there are a few libraries that have optional assembly language > > versions of speed critical parts. But in general I agree with you > > that drivers are the place to look. > > Keep in mind that every different architecture has its own assembly > > language, so if you've fixed a driver in i386 assembler, there's > > probably another version in amd64 assembler and possibly in the > > various powerpc and arm assemblers. > > There are assembly bits in valgrind, you could also look in > libc and equivalents, also the other tools like strace, ld, etc. > > Compilers might have some parts in assembly (gcc, clang, etc). > > I don't know of any project that is largely in assembly - the only > ones I know of are mainly C with some small bits in assembly. > So could be a steep learning curve learning the intricacies of > the thing in which the assembly is embedded (so to speak). > > Maybe also look for embedded type projects, or non-usual > architectures. Maybe also libm, data science, graphics libraries - > places where there are cpu-intensive operations that need > optimization. What about the projects that run on graphics > processors (boinc project or other distributed/crowd computing > for example). Bitcoin mining (might run on dedicated ASICs). > > I would be interested to hear if you find something interesting > to work on. I was thinking to FreeBSD sources because the original message was about contributing to the FreeBSD project, but indeed there are many ports that needs assembly for high cpu usage as suggeted. The reason for that is that compilers do not really use larger cpu registers (mmxs, xmms, ymms) yet, thus any software that can take advantage from vector operations must write critical parts of their code in assembly. I think one of the most famous examples is multimedia/ffmpeg. Another example is math/openblas (and most probably any other blas implementation). Lorenzo Salvadore.