虽然很多公司和研究人员都在努力解决多核的编程问题,但是也有大量处理器供应商正在力争改进其架构,以应对不断增长的内核数目。例如,单核设备的数据总线只有“一张吃饭的嘴”,添加第二个内核后,总线负载就翻倍了。每添加一个内核,面临的总线挑战就呈线性增长。当内核数达到 80、500、1000或更多时,就令人难以想象了。
但是也有好消息,处理器供应商(如ARM)正在改进其架构,以应对更高的数据吞吐率,这反映在所谓的互连技术中。同时还在实施其他技术,以应对不断增长的内核数目。但是,业界对这些新型多核架构的性能如何进行定量测量呢?如何确定可扩展性?系统设计人员如何选择最优的处理器?
在最简单的层面上,设计用于测试多核平台的基准必须可扩展,以便支持从一个内核到“无限”多个内核的情形。要确定多核设备的性能开始背离线性预期、进入下坡路的那个点,这是有意思的。
多核基准分类基本上有两个最高层次:共享内存和以消息为基础。共享内存方法依赖基于线程 API(如 POSIX)的语义。以消息为基础的方法适用于非对称异构多核解决方案。
EEMBC(嵌入式微处理器基准协会)认为这两种方法都可以有效支持必须处理一致性和分布式内存架构的嵌入式应用程序。
要衡量处理性能,可以利用速度测量来确定处理器完成一项任务的速度;也可以测量处理器在一定时间内能完成的任务数量,称为吞吐量或速率测量。
在最基本层面上检查一下共享内存多核基准,一类测试是对单个基准进行独立并行执行。这种速率测量基本上是利用相同的输入数据集,同时运行同一基准的多个实例,经过多个线程,所有线程运行完毕后,测量时间。这与S P E C速率基准(如 SPECint_rate2000)实施的传统吞吐量测量技术相同。
虽然很多公司和研究人员都在努力解决多核的编程问题,但是也有大量处理器供应商正在力争改进其架构,以应对不断增长的内核数目。例如,单核设备的数据总线只有“一张吃饭的嘴”,添加第二个内核后,总线负载就翻倍了。每添加一个内核,面临的总线挑战就呈线性增长。当内核数达到 80、500、1000或更多时,就令人难以想象了。
但是也有好消息,处理器供应商(如ARM)正在改进其架构,以应对更高的数据吞吐率,这反映在所谓的互连技术中。同时还在实施其他技术,以应对不断增长的内核数目。但是,业界对这些新型多核架构的性能如何进行定量测量呢?如何确定可扩展性?系统设计人员如何选择最优的处理器?
在最简单的层面上,设计用于测试多核平台的基准必须可扩展,以便支持从一个内核到“无限”多个内核的情形。要确定多核设备的性能开始背离线性预期、进入下坡路的那个点,这是有意思的。
多核基准分类基本上有两个最高层次:共享内存和以消息为基础。共享内存方法依赖基于线程 API(如 POSIX)的语义。以消息为基础的方法适用于非对称异构多核解决方案。
EEMBC(嵌入式微处理器基准协会)认为这两种方法都可以有效支持必须处理一致性和分布式内存架构的嵌入式应用程序。
要衡量处理性能,可以利用速度测量来确定处理器完成一项任务的速度;也可以测量处理器在一定时间内能完成的任务数量,称为吞吐量或速率测量。
在最基本层面上检查一下共享内存多核基准,一类测试是对单个基准进行独立并行执行。这种速率测量基本上是利用相同的输入数据集,同时运行同一基准的多个实例,经过多个线程,所有线程运行完毕后,测量时间。这与S P E C速率基准(如 SPECint_rate2000)实施的传统吞吐量测量技术相同。
举报