Re: Contribute a RISC-V 64 JIT backend

Logan Chien <[email protected]> Tue, 16 Jan 2024 18:32:48 -0800
Newsgroups gmane.comp.python.pypy
Message-ID <CALQyFuD2DYP9s6FcgxZp_menWGpU_RDooLUfzyqzDH=dtVwi2w@mail.gmail.com>
--===============3346667136681253920==
Content-Type: multipart/alternative; boundary="000000000000afe9fa060f1b103c"

--000000000000afe9fa060f1b103c
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Matti,

Thank you for your information.  I will try these this weekend.

Regards,
Logan


On Tue, Jan 16, 2024, 12:52=E2=80=AFAM Matti Picus <[email protected]> =
wrote:

> On 16/1/24 07:02, Logan Chien 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
>
>
> Very cool.
>
> 1: Eventually we would want a buildbot worker [0] using either actual
> hardware or qemu. Using qemu might be too slow to be practical. It could
> be based off the aarch64 docker file [1] as a template. For now, you
> could follow manually the different steps in a pyp-c-jit-<platform>
> buildbot run [2]: click on the stdio link for each step to follow the
> workflow. The "app-level -A", "extra tests", "lib-python" would give an
> indication of how compatible the rpython code is, and the "pypyjit"
> tests would give an indication of how well the JIT code generation
> follows the other platforms. A deeper compliance test would be to run
> the binary in the workflows from the binary-testing repo [6] against
> some common python libraries.
>
>
> 2: Theses [3] are the benchmarks that feed speed.pypy.org. They are run
> by a buildbot worker [4]. The step of interest is 9, where the command
> line is the top line of [5]. This generates a json results file and also
> some textual output. You will want an additional run with cpython for a
> baseline.
>
>
> Matti
>
>
> [0]
>
> https://foss.heptapod.net/pypy/buildbot/-/blob/branch/default/README_BUIL=
DSLAVE?ref_type=3Dheads
>
> [1]
>
> https://foss.heptapod.net/pypy/buildbot/-/blob/branch/default/docker/Dock=
erfileArm64?ref_type=3Dheads
>
> [2]
> https://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/9219
> for example
>
> [3] https://foss.heptapod.net/pypy/benchmarks
>
> [4]
> https://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/4056
>
> [5]
>
> https://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/builds/4056=
/steps/shell_9/logs/stdio
>
> [6] https://github.com/pypy/binary-testing
>
> _______________________________________________
> pypy-dev mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> https://mail.python.org/mailman3/lists/pypy-dev.python.org/
> Member address: [email protected]
>

--000000000000afe9fa060f1b103c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div>Hi Matti,<div dir=3D"auto"><br></div><div dir=3D"aut=
o">Thank you for your information.=C2=A0 I will try these this weekend.</di=
v><div dir=3D"auto"><br></div><div dir=3D"auto">Regards,</div><div dir=3D"a=
uto">Logan</div><br><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">On Tue, Jan 16, 2024, 12:52=E2=80=AFAM Matti Picus &lt;<a h=
ref=3D"mailto:[email protected]">[email protected]</a>&gt; wrote:<b=
r></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border=
-left:1px #ccc solid;padding-left:1ex">On 16/1/24 07:02, Logan Chien wrote:=
<br>
<br>
&gt; Hi,<br>
&gt;<br>
&gt; I have good news: the RISC-V backend can pass as many unit tests as <b=
r>
&gt; the AArch64 backend.=C2=A0 I got vmprof and codemap working this weeke=
nd.=C2=A0 <br>
&gt; I also completed a full translation and got a workable pypy executable=
.<br>
&gt;<br>
&gt; I have two questions now:<br>
&gt;<br>
&gt; 1. Are there other test suites that I can check for the correctness?<b=
r>
&gt; 2. How do we measure the performance?=C2=A0 Do we have a command line =
that <br>
&gt; can run all benchmarks?<br>
&gt;<br>
&gt; Thank you in advance.<br>
&gt;<br>
&gt; Regards,<br>
&gt; Logan<br>
&gt;<br>
&gt; p.s. All changes are at: <a href=3D"https://github.com/loganchien/pypy=
/tree/rv64" rel=3D"noreferrer noreferrer" target=3D"_blank">https://github.=
com/loganchien/pypy/tree/rv64</a><br>
<br>
<br>
Very cool.<br>
<br>
1: Eventually we would want a buildbot worker [0] using either actual <br>
hardware or qemu. Using qemu might be too slow to be practical. It could <b=
r>
be based off the aarch64 docker file [1] as a template. For now, you <br>
could follow manually the different steps in a pyp-c-jit-&lt;platform&gt; <=
br>
buildbot run [2]: click on the stdio link for each step to follow the <br>
workflow. The &quot;app-level -A&quot;, &quot;extra tests&quot;, &quot;lib-=
python&quot; would give an <br>
indication of how compatible the rpython code is, and the &quot;pypyjit&quo=
t; <br>
tests would give an indication of how well the JIT code generation <br>
follows the other platforms. A deeper compliance test would be to run <br>
the binary in the workflows from the binary-testing repo [6] against <br>
some common python libraries.<br>
<br>
<br>
2: Theses [3] are the benchmarks that feed <a href=3D"http://speed.pypy.org=
" rel=3D"noreferrer noreferrer" target=3D"_blank">speed.pypy.org</a>. They =
are run <br>
by a buildbot worker [4]. The step of interest is 9, where the command <br>
line is the top line of [5]. This generates a json results file and also <b=
r>
some textual output. You will want an additional run with cpython for a <br=
>
baseline.<br>
<br>
<br>
Matti<br>
<br>
<br>
[0] <br>
<a href=3D"https://foss.heptapod.net/pypy/buildbot/-/blob/branch/default/RE=
ADME_BUILDSLAVE?ref_type=3Dheads" rel=3D"noreferrer noreferrer" target=3D"_=
blank">https://foss.heptapod.net/pypy/buildbot/-/blob/branch/default/README=
_BUILDSLAVE?ref_type=3Dheads</a><br>
<br>
[1] <br>
<a href=3D"https://foss.heptapod.net/pypy/buildbot/-/blob/branch/default/do=
cker/DockerfileArm64?ref_type=3Dheads" rel=3D"noreferrer noreferrer" target=
=3D"_blank">https://foss.heptapod.net/pypy/buildbot/-/blob/branch/default/d=
ocker/DockerfileArm64?ref_type=3Dheads</a><br>
<br>
[2] <br>
<a href=3D"https://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/build=
s/9219" rel=3D"noreferrer noreferrer" target=3D"_blank">https://buildbot.py=
py.org/builders/pypy-c-jit-linux-x86-64/builds/9219</a> <br>
for example<br>
<br>
[3] <a href=3D"https://foss.heptapod.net/pypy/benchmarks" rel=3D"noreferrer=
 noreferrer" target=3D"_blank">https://foss.heptapod.net/pypy/benchmarks</a=
><br>
<br>
[4] <br>
<a href=3D"https://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/bu=
ilds/4056" rel=3D"noreferrer noreferrer" target=3D"_blank">https://buildbot=
.pypy.org/builders/jit-benchmark-linux-x86-64/builds/4056</a><br>
<br>
[5] <br>
<a href=3D"https://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/bu=
ilds/4056/steps/shell_9/logs/stdio" rel=3D"noreferrer noreferrer" target=3D=
"_blank">https://buildbot.pypy.org/builders/jit-benchmark-linux-x86-64/buil=
ds/4056/steps/shell_9/logs/stdio</a><br>
<br>
[6] <a href=3D"https://github.com/pypy/binary-testing" rel=3D"noreferrer no=
referrer" target=3D"_blank">https://github.com/pypy/binary-testing</a><br>
<br>
_______________________________________________<br>
pypy-dev mailing list -- <a href=3D"mailto:[email protected]" target=3D"_=
blank" rel=3D"noreferrer">[email protected]</a><br>
To unsubscribe send an email to <a href=3D"mailto:[email protected]=
" target=3D"_blank" rel=3D"noreferrer">[email protected]</a><br>
<a href=3D"https://mail.python.org/mailman3/lists/pypy-dev.python.org/" rel=
=3D"noreferrer noreferrer" target=3D"_blank">https://mail.python.org/mailma=
n3/lists/pypy-dev.python.org/</a><br>
Member address: <a href=3D"mailto:[email protected]" target=3D"_bla=
nk" rel=3D"noreferrer">[email protected]</a><br>
</blockquote></div></div></div>

--000000000000afe9fa060f1b103c--

--===============3346667136681253920==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
pypy-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/pypy-dev.python.org/
Member address: [email protected]

--===============3346667136681253920==--