[发明专利]一种CPU-GPU异构平台共享末级缓存管理方法、架构及装置有效
申请号: | 201810129892.3 | 申请日: | 2018-02-08 |
公开(公告)号: | CN108399145B | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 鞠雷;于淼;戴鸿君;李新 | 申请(专利权)人: | 山东大学 |
主分类号: | G06F15/78 | 分类号: | G06F15/78 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 张勇 |
地址: | 250061 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 cpu gpu 平台 共享 缓存 管理 方法 架构 装置 | ||
1.一种CPU-GPU异构平台共享末级缓存管理方法,其特征在于,该方法包括:
检测CPU-GPU异构平台运行信息,所述运行信息包括每个运算核的LLC块利用率和每个LLC组的未命中信息;
采用分区算法根据运算核的LLC块利用率得到运算核的初始LLC块插入位置;
根据初始LLC块插入位置和LLC组的未命中信息执行LLC块的插入和提升算法,进行CPU-GPU异构平台共享末级缓存管理;所述LLC块的提升算法输入初始LLC块插入位置、被命中的LLC块位置和LLC组的未命中信息,输出LLC块提升位置,具体步骤包括:
判断当前请求是否来自CPU,进一步判断LLC组的未命中信息的符号;
若该请求来自于CPU且LLC组的未命中信息的符号与设置的CPU请的未命中信息的符号相同,则提升位置为被命中的LLC块位置与初始LLC块插入位置乘LLC组的未命中信息后除以LLC组路数之和;若该请求来自于CPU且LLC组的未命中信息的符号与设置的CPU请求的未命中信息的符号相反,则提升位置为被命中的LLC块位置加一;
若该请求来自于GPU且LLC组的未命中信息的符号与设置的GPU请的未命中信息的符号相同,则提升位置为被命中的LLC块位置与初始LLC块插入位置乘LLC组的未命中信息后除以LLC组路数之差;若该请求来自于GPU且LLC组的未命中信息的符号与设置的GPU请求的未命中信息的符号相反,则提升位置为被命中的LLC块位置。
2.如权利要求1所述的方法,其特征在于,所述检测CPU-GPU异构平台一个运算核的LLC利用率的具体步骤包括:
针对每连续预设数量的LLC组进行一次取样;
采用最近最少栈形式记录取样后的每个LLC组中LLC块的未命中信息;
重复上述步骤,跟踪所有LLC块的所有的未命中信息,得到该运算核的LLC块利用率。
3.如权利要求1所述的方法,其特征在于,采用分区算法根据运算核的LLC块利用率对各个运算核进行分区,并计算各个运算核的分区块数;所述运算核的初始LLC块插入位置为该运算核的分区块数。
4.如权利要求3所述的方法,其特征在于,采用贪心算法为基础的分区算法根据运算核的LLC块利用率对该运算核进行分区,其具体步骤包括:
从LLC组中取出一块LLC块,计算各个运算核获得当前LLC块之后的命中率并进行比较,将当前LLC块分配给命中率最大的运算核;并更新该运算核的LLC块数;
继续从LLC组中取出一块LLC块,重复上述步骤直至所有LLC组中的LLC块被分配完成。
5.如权利要求1所述的方法,其特征在于,采用饱和计数器检测每个LLC组的未命中信息,用于判断固定时间段内CPU请求和GPU请求的频繁度,所述饱和计数器的位数根据其对应的LLC组的路数设置;
设置所述饱和计数器记录的CPU请求和GPU请求的未命中信息的符号相反,且单次计数记录的CPU请求的未命中信息大于记录的GPU请求未命中信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810129892.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种冷存储系统
- 下一篇:Flash控制器、取指令方法及计算机可读存储介质