any way asm people could contribute?

Lorenzo Salvadore phascolarctos at protonmail.ch
Sun Feb 10 23:05:52 UTC 2019


> On Sun, Feb 10, 2019 at 04:35:03PM -0500, John Levine wrote:
>
> > In article U-T5V9GBTMH0X4T_hYmtSc4B19QRNPzkirSo_g45l-czdcQaEvhYekzafkZcQOM_Nb9IQ6Qx3EXEQ-aeRrDJkPrqMnQky88TZZlDfr9iTGA=@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.


More information about the freebsd-questions mailing list