Hi Logan

Additionally to what Matti says, there are random fuzzing tests like
test_ll_random.py in jit/backend/test. Run those for longer than the
default (e.g. whole night) to see if they find issues

Best,
Maciej Fijalkowski

On Tue, 16 Jan 2024 at 07:02, Logan Chien <tzuhsiang.ch...@gmail.com> wrote:
>
> Hi,
>
> I have good news: the RISC-V backend can pass as many unit tests as the 
> AArch64 backend.  I got vmprof and codemap working this weekend.  I also 
> completed a full translation and got a workable pypy executable.
>
> I have two questions now:
>
> 1. Are there other test suites that I can check for the correctness?
> 2. How do we measure the performance?  Do we have a command line that can run 
> all benchmarks?
>
> Thank you in advance.
>
> Regards,
> Logan
>
> p.s. All changes are at: https://github.com/loganchien/pypy/tree/rv64
>
> On Mon, Jan 15, 2024 at 8:54 PM Logan Chien <tzuhsiang.ch...@gmail.com> wrote:
>>
>> 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