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

Headers-Klasse #70

Open LukasSiefke opened 4 years ago

LukasSiefke commented 4 years ago

nvrtc scheint ja auch ohne explizite Headers-Angabe die headers zu finden zumindest bei headern im selben Ordner... Vielleicht Erzeugung mit Headern mit Namen != Pfadnamen zulassen?

zeratax commented 4 years ago

und damit das ganze mehr Sinn macht und #72 wahrscheinlich nicht wichtig ist, sollte Headers vielleicht bei compilezeit schon die Header einlesen? Source genauso maybe? dann müsste man nicht immer alles rumkopieren...

LukasSiefke commented 4 years ago

Source bekommt doch sowieso schon zur Laufzeit einen String Ich denke nicht, dass mal alle Headers schon zur Komplilezeit einlesen kann, da später, wenn das dann von Scala aus benutzt wird und dort Header included werden sollen, will man ja dafür nicht die Bibliothek neu kompilieren Aber das rumkopieren finde momentan auch nicht so optimal

zeratax commented 4 years ago

ah ja garnicht an scala gedacht.

aus der nvrtc doc klingt es halt so als würde nvrtc sachen schon finden, die header beim kompilieren anzugeben ist nur so dafür da, falls man nicht sicher sein kann, dass sie da sein werden

Alternatively, the compile option -I can be used if the header is guaranteed to exist in the file system at runtime.

obwohl wir ja auch nicht -I benutzt haben...

zeratax commented 4 years ago

wollte nochmal sagen, dass ich dafür bin headers so zu ändern, dass die etwa so aufgerufen werden

Header header1{"typedef struct {\n
  int x;\n
} header1;", "header1.h"}

Source function{"#include \"header1.h\"\n
extern \"C\" __global__ header1 function() {\n
  header1 a;\n
  a.x = 5;\n
  return a;\n", Headers{header1}};

und nichts von der festplatte geladen wird, da das nvrtc ja schon selbst macht und uns nur die tests kompliziert

LukasSiefke commented 4 years ago

Das finde ich sehr sinnvoll