Project Panama - the JNI Replacement (slidedeck)

Ui, nun das ist eine lange Antwort :smiley:

Warum auch immer :wink:

Zum Projekt Sumatra, ich glaube das ist nahezu tot, wird aber durch Panama durchaus mit in Angriff genommen (ka ob das fester Bestandteil geworden ist oder parallel dazu entwickelt wird, aber die Integration wird ziemlich sicher kommen).

Ich denke, dass der Abstraktionslevel ausreichen sollte um entsprechend den Code auf entweder CPU oder GPU auszuführen, sofern die Runtime versteht wie sie z.B. CUDA Binary erzeugen kann / muss.

Schöner hätte ich es nicht sagen können :wink:

Zum Thema Vector Operationen: Derzeit wird es auf die SIMD Opcodes (also SSE/SSE2/AVX) gemapped. Trotzdem denke ich auch hier, wird es der Runtime egal sein, wo es ausgeführt werden soll, solange sie binaries für die Zielumgebung erstellen kann. Mit etwas Verstand könnte sie vllt sogar rausfinden ob einfache oder doppelte Genauigkeit und dann selber entscheiden wohin. Von wegen Memory Access, jo entweder vorher umkopieren (auch hier könnte ein Threshold einen Ansatz geben, ab wann der Overhead für das Kopieren unterliegt gegenüber Geschwindigkeitszuwachs) oder eben sowas wie HSA und ich glaube das wird in Zukunft wichtiger werden. Unified Memory Addresses in einer Form oder der anderen wird kommen.

Value Types, jo genau. Nicht nur zur Übertragung nach C++ oder so ist es wichtig, sondern auch für Column-based operations. Also schnelle Array-Operationen. Mal ganz abgesehen von Pointer-Chasing und Cache-Lines :slight_smile: