devito
devito copied to clipboard
Using pgc++(nvc++) with PGI(NVidia) compiler instead of pgcc(nvc)
pgcc
doesn't swallow the following
float (*restrict buf)[buf_y_size] __attribute__ ((aligned (64))) = (float (*)[buf_y_size]) buf_vec;
when the variable buf_y_size
is of type const int
. No matter what C we compile for (c99 and later)
pgc++
accepts it instead. So currently:
- we wrap the entry point in C with
extern "C" {
int Kernel( ...) {
...
}
}
- we use pgc++ instead of pgcc
update: same applies to nvc++ vs nvc (which inherit from pgcc++/pgcc, so really no surprise)