Reputation: 31
I'm designing a signal processing application to run an an Intel Xeon CPU using linux. It will have several parallel threads, each allocated to it's own core. Each will also use the IPP library to speed up calculations using the AVX units. What will happen if I run more AVX unit dependent threads that there are AVX units? Will threads just block until an AVX unit is available? Can they be shared somehow? Something more sinister?
Upvotes: 2
Views: 294
Reputation: 4608
Each core can run two threads. It is likely that the operating system will put two threads in the same core if you run many threads and do not explicitly assign threads to different cores. Two threads running in the same core will compete for the same execution units. If execution unit throughput is a bottleneck then there is no advantage in hyperthreading.
Upvotes: 1