Skip to content

dev call 20220707

Florian Angerer edited this page Jul 7, 2022 · 2 revisions

Dev Call: 7 July 2022

Present

Matti, Simon, Ronan, Du Toit, Gianluca, Antonio, Florian, Tim, Mohaned

Agenda

Conferences

  • Antonio and Simon are going to SciPy 2022
  • Ronan is going to attend EuroPython

NumPy Migration Progress

  • GraalVM team's branches are now online
  • It should be easy to try it out. Just checkout the appropriate branch in HPy and install it. Then checkout NumPy branch and build/install it.
  • Tim already pushed the game-of-life example and some description on how to run it in numpy-hpy's readme.
  • Current NumPy/HPy changes are barely in a shape that can be merged.
  • How to approach upstreaming of changes: try to push heap-type conversion first
  • Ronan did not upstream his changes because PyPy couldn't support that types are changed after creation. NumPy patches buffer procs or something after the type was initialized.
  • Did the GraalVM team see some fundamental performance blockers? * That's hard to answer by now. The GraalVM team has seen performance regressions due to generic APIs. For example, in CPyhon you can usee PyTuple_GetItem which assumes a tuple as receiver and directly accesses the underlying storage. In HPy, you need to use HPy_GetItem_i which is generic. * Florian also expects some penalty because HPy does not _allow_ borrowed and stolen references. I.e. there will be more inc/dec-refs because of that. However, that can probably be fixed by restructuring code and using trackers.

Misc

  • SciPy 2022 HPy BoF session topics: * NumPy devs will also be there we could advertise our migration efforts
  • Pillow progress (Du Toit): started to port Pillow; seems to be 20% slower. Need to investigate why. HPy args parser cannot handle tuple unpacking (intentionally); the idea is to parse the tuple as 'O' and unpack manually
  • HPyContext layout * Florian will create benchmarks to see if additional indirection is expensive * We could use NumPy array printing because that's stack intensive
  • HPyContext backwards compatibility (PR-331) * Matti confirms that NumPy uses a similar approach * Antonio suggests that we could also do this on a file-granularity (e.g. have public_api.0.h and public_api.1.h and the added context members are added at the end of the context). * In general: adding a preprocessor to autogen for public_api.h would also be nice for the debug mode. We could use pcpp (a pure Python impl) for that.
  • Antonio came up with the idea to produce real universal binaries by compiling to web assembly.
Clone this wiki locally