Hi Maciej Thank you for the information. It sounds like a good idea to run this before I go to sleep.
Other updates: I didn't make progress last weekend. I spent last weekend revising the code generator for integer immediate load (replace up-to-eight-instructions with pc-relative load instructions). I will try them in the upcoming weekends. Regards, Logan On Sun, Jan 21, 2024 at 10:36 PM Maciej Fijalkowski <fij...@gmail.com> wrote: > 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