performance-aware multicore programming
Multicore processors have become the CPU trend currently due to the fact that performance is hard to be gained by simply increasing clock rates, which had been true over the past decades in computer industry. Yet, multicore programming is still in its infant stage as programmers are not trained to write parallel programs and technology constraints require manual tuning to achieve high performance. We report our multicore programming experience via optimization techniques such as global memory coalescence and thread divergence avoidance with a detailed performance evaluation on a classical dot product application. After applying these optimization techniques, the dot product application achieves a speedup of 3.57 compared to its non-optimization counterpart. These techniques can be directly applied to other applications as dot product has been used in many scientific applications.
multicore multicore programming programming dot product gpu