Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KernelArg reuse devicePtr #123

Open
LukasSiefke opened this issue Jan 13, 2020 · 0 comments
Open

KernelArg reuse devicePtr #123

LukasSiefke opened this issue Jan 13, 2020 · 0 comments
Labels
enhancement New feature or request

Comments

@LukasSiefke
Copy link
Collaborator

Is your feature request related to a problem? Please describe.
Wäre cool wenn wir unsere devicePtr wieder verwenden könnten. Also wenn wir das gleiche Argument bei mehreren Kernelausführungen brauchen, könnte man sich dann mehrfaches uploaden und downloaden vom device sparen.

Describe the solution you'd like
Man könnte einfach statt dem CudevicePtr-Attribut einen sharedPtr auf einen CudevicePtr machen. Dieser wird dann beim ersten uploaden initialisiert, kann dann mehrmals verwendet werden und wird dann irgendwann durch den sharedPtr automatisch mit cuMemFree wieder freigegeben, sobald das KernelArg zerstört wird.
Man müsste beachten, dass sich der Inhalt eines KernelArgs auch ändern kann, weswegen dieses dann nochmal hochgeladen werden müsste. Vom JNI kommen aber sowieso nur lesbare KernelArgs.
Weiterhin ist das Ganze insgesamt speicherintensiver, aber dafür halt schneller, wenn man weniger hoch- und runterladen muss.
Weiterhin ist auch die Frage wie gut das mit Java zusammen arbeitet, weil in Java die Objekte ja erst irgendwann vom garbage collector freigegeben werden. Das könnte halt Probleme geben, je nachdem wie viele Argumente noch nicht wieder freigegeben worden sind.

@LukasSiefke LukasSiefke added the enhancement New feature or request label Jan 13, 2020
@zeratax zeratax added this to the v2 advanced executor milestone Feb 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants