amd公司即将制造新型微处理器,旨在将其现有cpu及gpu组件以前所未有的智能化方式连接在一起。
即将面世的新型芯片将采用amd公司名为“异构队列(hq,heterogeneous queuing)”的技术。这种全新方案将gpu放在与cpu对等的地位之上——换言之,图形引擎将不再需要坐等中央处理器为其下达执行指示。
目前,cpu正单独负责应用程序任务,将处理工作由作业调度队列分配至用户内存当中。它甚至可以为自身分配处理任务——例如由一个计算核心将工作调配至另一个核心处。
gpu则不具备这样的能力。通常情况下,它只能作为一种外围资源受到操作系统以及驱动程序的管理,这样的方式大大增加了gpu访问时所产生的延迟。
这种处理机制主要属于历史遗留问题:gpu最初是一块通过附加板接入主系统总线的独立芯片。这种模式直到今天也没有改变——即使将gpu集成到cpu之中甚至与cpu处于同一晶圆模块之内,其基本原理仍然如故。
amd的新方案,同时也是其最新工作成果“异构系统架构”(hsa,heterogenous system architecture)则为gpu带来与cpu完全一致的内存访问与工作管理能力。
如此一来,一块hq gpu就能够监控任务队列从而接受并调度任务——其作用对象同样涵盖自身与cpu。与gpu相协作的应用程序只需将工作细节加以整理,然后将结果添加到gpu处于用户内存当中的调度队列即可。内核级别的驱动程序通道将彻底被淘汰,与其一同消亡的还有因此产生的现有延迟状况。
作为整套系统的心脏,处于用户内存中的amd异构统一内存架构(huma, heterogenous unified memory architecture)将由cpu与gpu实现共享。但为了实现设计目的,amd特地打造了一种能够被全部hsa兼容硬件所识别的标准化任务调度数据包格式,类似于一种标准队列格式。应用程序能够直接根据这种新型数据包格式生成任务,而且不必将数据包再度转换为中间形式或者符合特定供应商要求的形式。值得一提的是,目前的驱动程序仍然需要执行这一流程。
转译过程与副本制作任务的离去将提高性能表现。此外,直接访问用户内存中的任务也将迎来性能改进,这是因为驱动程序将不再被局限在受保护的内存空间当中,由相应内核模式变化所带来的延迟亦不复存在。
让hq gpu脱离cpu而独立运行还能够帮助后者在gpu执行像素及多边形渲染任务的同时进入休眠状态,或者作为一块大规模并行数据处理器做点其它工作。根据amd公司的说法,这样一来hq的优势将一举从智能手机处理器领域跃升至数据中心芯片层面。
当然,只有更多供应商的支持与加盟,这套方案才真正有可能迎来发展。有鉴于此,amd不失时机地指出,hsa数据包格式已经受到其hsa基金会成员的支持——其中包括arm、高通、三星、联发科以及德州仪器等公司。
如此看来,hsa兼容硬件应该不至于发生短缺了。但应用程序又是否会选择这套前途未卜的新方案呢?amd希望能够努力将hsa嵌入至标准api当中,例如opencl以及opencv,从而帮助开发人员轻松从这套新方案中受益。
amd公司高级研究员ben sander表示:“我们还计划将hsa与其它主流编程模式相对接,例如java以及python……这将带来更多回报。不过大家也可以直接使用此方案。虽然程序员需要为此投入一些精力与成本,但最终大家将能够对发送至gpu的数据包进行全面掌控。”
amd公司目前尚未透露hq方案正式登陆处理器产品的具体时间。