You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the procedure get_number_of_processors is reading /proc/cpuinfo and returns the number of logical cores. On a 6-core CPU with hyper-threading, this results in 12 threads being launched for synthesis - when enabling out of context mode. This is probably slower than launching only 6 threads due to HT overhead. It also happens that this number of threads exhausts even large amounts of RAM (32 GiB in my case), so it could be required to lower the number of threads even below the number of available (physical) cores.
My suggestion is:
Use nproc (output can be used directly) instead of (probably error prone) parsing of /proc/cpuinfo
Maybe introduce an environment variable like TAPASCO_MAX_THREADS to set a maximum number of threads or TAPASCO_NUM_THREADS to use a fixed number of threads
The text was updated successfully, but these errors were encountered:
Selecting the right number of threads is a problem. Relying on the number of cores is not a good metric as memory usage can explode, depending on which FPGA is targeted.
nproc is simpler to use, but still includes hyper-threading
there is already a command line parameter --maxThreads and --maxTasks to set the maximum number of threads / tasks
Currently, the procedure
get_number_of_processors
is reading/proc/cpuinfo
and returns the number of logical cores. On a 6-core CPU with hyper-threading, this results in 12 threads being launched for synthesis - when enabling out of context mode. This is probably slower than launching only 6 threads due to HT overhead. It also happens that this number of threads exhausts even large amounts of RAM (32 GiB in my case), so it could be required to lower the number of threads even below the number of available (physical) cores.My suggestion is:
nproc
(output can be used directly) instead of (probably error prone) parsing of/proc/cpuinfo
TAPASCO_MAX_THREADS
to set a maximum number of threads orTAPASCO_NUM_THREADS
to use a fixed number of threadsThe text was updated successfully, but these errors were encountered: