zeratax / yacx

Yet Another CudaExecutor - wrapper to easily compile and execute cuda kernels
https://zeratax.github.io/yacx
MIT License
8 stars 4 forks source link

Source-Klasse #37

Closed LukasSiefke closed 4 years ago

LukasSiefke commented 4 years ago

Falls mehrmals die Methode program aufgerufden wird, gibt es Memory Leaks, da jedes Mal ein nvrtcProgram _prog erstellt wird, aber nur einmal im Destruktor von Source freigegeben wird. Falls program sowieso nur einmal aufgerufen werden soll, könnte man auch in Betracht ziehen, die ganze Klasse wegzulassen und nur eine entsprechende Methode program bereit zu stellen. nvrtcProgram _prog vieleicht im Destruktor von Program freigeben?

zeratax commented 4 years ago

Immer noch dafür einfach shared_pointer zu benutzen. #30

Finde ne source Klasse könnte immer noch mehr Funktionalität finden.

E.g. relative Pfade bei gauss.cu zum header sind komisch weil das ganze im working dir examples ausgeführt wird. Man könnte halt bei source den Pfad zum kernel noch mitbetrachten um das eleganter zu lösen.

Für den executor ist das egal, aber als library wäre das schön

LukasSiefke commented 4 years ago

ok, dann shared_pointer

LukasSiefke commented 4 years ago

Ich weiß halt nicht ob das so gut mit nvrtc zusammen arbeitet, weil man ja das Objekt scheinbar mit nvrtcDestroyProgram löschen muss und ich weiß nicht, ob der shared_pointer das auch irgendwie kann

Man könnte sonst das Attribut _prog in der Klasse Source weglassen, da es sowieso nicht benutzt wird und es in Program aufräumen