limit safety margin for local memory
authorAndreas Beckmann <anbe@debian.org>
Sat, 26 Dec 2020 20:26:31 +0000 (20:26 +0000)
committerPeter Michael Green <plugwash@raspbian.org>
Sat, 26 Dec 2020 20:26:31 +0000 (20:26 +0000)
Bug: https://github.com/pocl/pocl/issues/810

avoids out-of-memory on 32-bit platforms with large caches and corecount

Gbp-Pq: Name issue-810.patch

lib/CL/devices/pthread/pthread_scheduler.c

index 1e7ae402430b4642e245255fafd90c90edc4eff4..16fc64cdeecba97ee8387ab2b038bbba65e02db8 100644 (file)
@@ -104,7 +104,7 @@ pthread_scheduler_init (cl_device_id device)
   /* safety margin - aligning pointers later (in kernel arg setup)
    * may require more local memory than actual local mem size.
    * TODO fix this */
-  scheduler.local_mem_size = device->local_mem_size << 4;
+  scheduler.local_mem_size = device->local_mem_size + device->max_parameter_size * MAX_EXTENDED_ALIGNMENT;
 
   for (i = 0; i < num_worker_threads; ++i)
     {