METHOD FOR IMPROVING OPENCL HARDWARE EXECUTION EFFICIENCY
원문보기
IPC분류정보
국가/구분 |
United States(US) Patent
공개
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0462780
(2017-03-17)
|
공개번호 |
US-0011957
(2018-01-11)
|
우선권정보 |
CN-201610039665.2 (2016-01-20) |
발명자
/ 주소 |
- CHENG, Ailian
- WANG, Wenhua
|
출원인 / 주소 |
- Hangzhou Flyslice Technologies Co., Ltd.
|
인용정보 |
피인용 횟수 :
0 인용 특허 :
0 |
초록
▼
A method for improving OpenCL hardware execution efficiency described in this invention comprises the following steps: compiling a kernel implemented in OpenCL, generating Verilog code with a high-level synthesis tool; analyzing the interfaces of auto-generated Verilog code, recording signals, timin
A method for improving OpenCL hardware execution efficiency described in this invention comprises the following steps: compiling a kernel implemented in OpenCL, generating Verilog code with a high-level synthesis tool; analyzing the interfaces of auto-generated Verilog code, recording signals, timing sequence, and function of the interfaces; manually modifying and optimizing the Verilog code; inserting a file replacement command in the script responsible for flow control, replacing the auto-generated code with the optimized Verilog code; rerunning OpenCL compiler and generating an ultimate FPGA configuration file. The invention makes manual optimization of the auto-generated Verilog code becomes possible, by parsing the compilation flow of OpenCL environment and analyzing the structure and interfaces of the auto-generated Verilog code. It promotes the performance of kernels, by increasing working frequency, achieving more parallelism and taking full advantages of FPGA hardware resources, and improves the execution efficiency of OpenCL on FPGA platform significantly.
대표청구항
▼
1. A method for improving OpenCL hardware execution efficiency, comprising the following steps: S1: using a compiler to compile a kernel implemented in Open Computing Language (OpenCL), and invoking a high-level synthesis tool to generate Verilog code;S2: analyzing generated interfaces described in
1. A method for improving OpenCL hardware execution efficiency, comprising the following steps: S1: using a compiler to compile a kernel implemented in Open Computing Language (OpenCL), and invoking a high-level synthesis tool to generate Verilog code;S2: analyzing generated interfaces described in Verilog language, recording signals, timing sequence, and function of the interfaces, and ensuring the above signals, timing sequence, and function remain the same in subsequent steps;S3: manually optimizing the Verilog code in the kernel according to requirements of performance and resource utilization, and backing up the optimized code to avoid being covered by the subsequent steps;S4: amending a script responsible for flow control in an OpenCL development environment, inserting a file replacement command after the high-level synthesis step in the compilation process, and replacing the Verilog code auto-generated by the compiler with the optimized Verilog code; andS5: rerunning the OpenCL compilation process from the beginning, the flow control script modified in step S4 taking effect and replacing the Verilog code auto-generated by the OpenCL compiler with the optimized Verilog code in step S3, then the OpenCL development environment automatically invoking a physical synthesis tool to finish the subsequent implementation, placement, and routing steps, and generating an ultimate FPGA configuration file. 2. The method for improving OpenCL hardware execution efficiency according to claim 1, wherein the step of manually optimizing the Verilog code in the kernel comprises: recognizing parts of the Verilog code possible to be modified and optimized, by parsing the compilation flow of the OpenCL development environment and analyzing the structure and interfaces of the auto-generated Verilog code; andperforming targeted modifications, manual optimization, and partial or complete replacement to the Verilog code. 3. The method for improving OpenCL hardware execution efficiency according to claim 1, wherein the step of amending the script responsible for flow control in OpenCL development environment comprises: inserting a monitoring command and the file replacement command into the script; andreplacing the Verilog code auto-generated by the compiler with the optimized Verilog code after detecting the high-level synthesis step in the compilation process is finished.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.