The need for heterogeneous CPU-GPU processing has significantly grown in recent years. The efficient utilization of such heterogeneous resources requires data processing systems to employ efficient workload placement strategies to assign the appropriate amount of compute to the right processor. However, identifying an optimal placement strategy is challenging due to several complex and conflicting trade-offs involving the characteristics of processors, the nature of the workload, and data locality. Additionally, placement decisions affect workload runtime and performance costs, while also relying on the availability of potentially different implementations for CPUs and GPUs, adding more complexity in such heterogeneous environments. In this chapter, we review and compare state-of-the-art strategies for workload placement and scheduling on heterogeneous CPU-GPU architectures, techniques for runtime prediction, and methods to support multi-device code.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Workload Placement and Scheduling on Heterogeneous CPU-GPU Architectures

  • Marcos N. L. Carvalho,
  • Anna Queralt,
  • Oscar Romero,
  • Alkis Simitsis

摘要

The need for heterogeneous CPU-GPU processing has significantly grown in recent years. The efficient utilization of such heterogeneous resources requires data processing systems to employ efficient workload placement strategies to assign the appropriate amount of compute to the right processor. However, identifying an optimal placement strategy is challenging due to several complex and conflicting trade-offs involving the characteristics of processors, the nature of the workload, and data locality. Additionally, placement decisions affect workload runtime and performance costs, while also relying on the availability of potentially different implementations for CPUs and GPUs, adding more complexity in such heterogeneous environments. In this chapter, we review and compare state-of-the-art strategies for workload placement and scheduling on heterogeneous CPU-GPU architectures, techniques for runtime prediction, and methods to support multi-device code.