Usage of MPS daemon
In case when multi-process application like PostgreSQL uses GPU device, it is a well known solution to use MPS (Multi-Process Service) to reduce context switch on GPU side and resource consumption for device management.
On the other hands, the current version of MPS daemon has some limitations which overlap with a part of features of PG-Strom, therefore, you cannot use MPS daemon for PG-Strom. Disables MPS daemon when PG-Strom works.
For details, the
cudaDeviceSynchronize() device runtime function internally uses dynamic parallelism that is restricted under MPS, when GpuPreAgg's GPU kernel function expands internal hash table on the demand.
We publish several articles, just called "notes", on the project wiki-site of PG-Strom.