Hi Maciej,

Thank you for your information.  Let me conduct more surveys.  Thanks.

Regards,
Logan

On Thu, Jan 11, 2024 at 2:44 AM Maciej Fijalkowski <fij...@gmail.com> wrote:

> Hi Logan
>
> As far as I remember (and neither Armin nor I did any major pypy
> development recently), the vectorization was never really something we
> got to work to the point where it was worth it. In theory, having
> vectorized operations like numpy arrays to compile to vectorized CPU
> instructions would be glorious, but in practice it never worked well
> enough for us to enable it by default.
>
> Best,
> Maciej
>
> On Wed, 10 Jan 2024 at 08:39, Logan Chien <tzuhsiang.ch...@gmail.com>
> wrote:
> >
> > Hi Armin,
> >
> > > About the V extension, I'm not sure it would be helpful; do you plan
> > > to use it in the same way as our x86-64 vector extension support?  As
> > > far as I know this has been experimental all along and isn't normally
> > > enabled in a standard PyPy.  (I may be wrong about that.)
> >
> > Well, if the vector extension is not enabled by default even for x86-64
> backend, then I will have to conduct more survey, planning, and designing.
> I haven't read the vectorization code yet.
> >
> > Anyway, I will finish the basic JIT first.
> >
> > Regards,
> > Logan
> >
> > On Tue, Jan 9, 2024 at 2:22 AM Armin Rigo <armin.r...@gmail.com> wrote:
> >>
> >> Hi Logan,
> >>
> >> On Tue, 9 Jan 2024 at 04:01, Logan Chien <tzuhsiang.ch...@gmail.com>
> wrote:
> >> > Currently, I only target RV64 IMAD:
> >> >
> >> > I - Base instruction set
> >> > M - Integer multiplication
> >> > A - Atomic (used by call_release_gil)
> >> > D - Double precision floating point arithmetic
> >> >
> >> > I don't use the C (compress) extension for now because it may
> complicate the branch offset calculation and register allocation.
> >> >
> >> > I plan to support the V (vector) extension after I finish the basic
> JIT support.  But there are some unknowns.  I am not sure whether (a) I
> want to detect the availability of the V extension dynamically (thus
> sharing the same pypy executable) or (b) build different executables for
> different combinations of extensions.  Also, I don't have a development
> board that supports the V extension.  I am searching for one.
> >> >
> >> > Another remote goal is to support RV32IMAF (singlefloats) or
> RV32IMAD.  In RISC-V, 32-bit and 64-bit ISAs are quite similar.  The only
> difference is on LW/SW (32-bit) vs. LD/SD (64-bit) and some special
> instructions for 64-bit (e.g. ADDW).  I isolated many of them into
> load_int/store_int helper functions so that it will be easy to swap
> implementations.  However, I am not sure if we have to change the object
> alignment in `malloc_nursery*` (to ensure we align to multiples of
> `double`).  Also, I am not sure whether it is common for RV32 cores to
> include the D extension.  But, anyway, RV32 will be a lower priority for me
> because I will have to figure out how to build a RV32 root filesystem first
> (p.s. Debian doesn't (officially) support RV32 as of writing).
> >>
> >> Cool!  Here are a few thoughts I had when I looked at some RISC-V
> >> early documents long ago (warning, it may be outdated):
> >>
> >> Yes, not using the "compress" extension is probably a good approach.
> >> That looks like something a compiler might do, but it's quite a bit of
> >> work both implementation-wise, and it's unclear if it would help anyway
> here.
> >>
> >> About the V extension, I'm not sure it would be helpful; do you plan
> >> to use it in the same way as our x86-64 vector extension support?  As
> >> far as I know this has been experimental all along and isn't normally
> >> enabled in a standard PyPy.  (I may be wrong about that.)
> >>
> >> Singlefloats: we don't do any arithmetic on singlefloats with the JIT,
> >> but it has got a few instructions to pack/unpack double floats into
> >> single floats or to call a C-compiled function with singlefloat
> >> arguments.  That's not optional, though I admit I don't know how a C
> >> compiler compiles these operations if floats are not supported by the
> >> hardware.  But as usual, you can just write a tiny C program and see.
> >>
> >> I agree that RV32 can be a more remote goal for now.  It should
> >> simplify a lot of stuff if you can just assume a 64-bit environment.
> >> Plus all the other points you mention: the hardware may not support
> >> doubles, and may not be supported by Debian...
> >>
> >>
> >> A bientôt,
> >>
> >> Armin Rigo
> >
> > _______________________________________________
> > pypy-dev mailing list -- pypy-dev@python.org
> > To unsubscribe send an email to pypy-dev-le...@python.org
> > https://mail.python.org/mailman3/lists/pypy-dev.python.org/
> > Member address: fij...@gmail.com
>
_______________________________________________
pypy-dev mailing list -- pypy-dev@python.org
To unsubscribe send an email to pypy-dev-le...@python.org
https://mail.python.org/mailman3/lists/pypy-dev.python.org/
Member address: arch...@mail-archive.com

Reply via email to