发明名称 一种基于图形处理器的的流媒体服务器加速方法
摘要 本发明属于视频点播系统以及网络编码技术领域,具体涉及一种基于图形处理器GPU的流媒体服务器加速方法和系统。本发明利用GPU的强大并行计算能力来加速网络编码计算;通过让服务器端的GPU加入到网络编码的计算工作中来,大幅提高服务器网络编码的吞吐率,也能让CPU留出时间来进行其他系统调度的工作。本发明可以解决传统网络编码应用场景中,由于编码的计算开销所带来的系统瓶颈,只使用价格大大低于CPU的GPU就能达到提升计算能力的目的,大大提高系统响应速度。本发明在基于网络编码的流媒体服务领域,具有很高的应用价值。
申请公布号 CN102143386A 申请公布日期 2011.08.03
申请号 CN201010102793.X 申请日期 2010.01.28
申请人 复旦大学 发明人 王新;赵进;高麟翔;张昕雅
分类号 H04N21/2387(2011.01)I;H04N7/26(2006.01)I 主分类号 H04N21/2387(2011.01)I
代理机构 上海正旦专利代理有限公司 31200 代理人 吴桂琴;包兆宜
主权项 一种基于图形处理器的的流媒体服务器加速方法,其特征在于,其包括如下步骤:步骤1:在安装有图形处理器GPU的流媒体服务器上,将输入的视频数据设置为BN个块,每块的大小为BS字节;预设定的每个片大小为TN个字节,所述TN必须能够整除BS;根据输入的块所需编码块数CN,以及CN*BN字节的编码矩阵;所需的输出数据为CN个BS字节的块;步骤2:将所需输出数据的每个块划分为BN/TN片,总计划分出CN×(BS/TN)片;所设定的参数是:每个线程负责编码出一个字,每个片总共使用TN/4个线程并行处理;步骤3:由流媒体服务器的客户端接受客户的片ID请求,流媒体服务器的主控模块通过片ID获取数据片,将编码的任务划分为CN×(BS/TN)个子任务,每个子任务负责编码出一片数据;每个子任务又被划分为TN/4个线程并行处理,总共有CN×BS/4个线程并行计算;步骤4:由网络编码协作调度模块根据GPU工作状况,指示当前子任务被分配的目标;如果GPU处于空闲状态,执行步骤5;否则,执行步骤8;步骤5:将子任务的编码矩阵和数据都复制到显存上,步骤6:使用开发工具CUDA执行已经编写好的用于在GPU上执行的代码,将整个任务划分为20个子任务交给GPU执行,而每个子任务又交由一个多处理器处理,然后被划分为256个线程执行;步骤7:将GPU各个多处理器计算出的编码结果复制回系统内存,取得进行网络编码运算的结果;并返回步骤3;步骤8:由CPU执行编码计算;步骤9:将CPU计算出的编码结果复制回系统内存,取得进行网络编码运算的结果;并返回步骤3。
地址 200433 上海市邯郸路220号