Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16596 Discussions

Power/Energy Measurements with Arria 10 and OpenCL SDK

JLAMB3
Beginner
1,251 Views

I am trying to get an accurate power measurement to estimate energy consumption for an application using an Arria 10 device and Nallatech board (p510t_sch_ax115) and the Intel OpenCL SDK (Version 17.1.0 Build 240)

 

For example, with the hello_world example I've tried the following:

$user: aoc device/hello_world.cl -o bin/hello_world.aocx --board p510t_sch_ax115 $user: cd bin/hello_world $user: quartus_pow top.qpf

Here's an example of the error I'm encountering:

Info: ******************************************************************* Info: Running Quartus Prime Power Analyzer Info: Command: quartus_pow top.qpf Info: Using INI file ~/hello_world/bin/hello_world/quartus.ini Info (16677): Loading final database Info (16734): Loading "final" snapshot for partition "root_partition". Info (16734): Loading "final" snapshot for partition "root_partition_2cedade0". Info (16734): Loading "final" snapshot for partition "kernel" Warning (17912): Partition "freeze_wrapper_inst|kernel_system_inst" contains an output port, "kernel_mem1_address[0]~OPORT", that connects to partition and has no routing. It is possible that the destination logic was swept away. Consider modifying your design by inserting Wire LUTs so that every partition output has a routed destination. Warning (17912): .... several more like the previous Info (16678): Successfully loaded final database: elapsed time is 00:00:17 Error: Quartus Prime Power Analyzer was unsuccessful. 0 errors, 14 warnings Error: Peak virtual memory: 1247 megabytes Error: Processing ended: Tue Sep 4 12:22:02 2018 Error: Elapsed time: 00:00:22 Error: Total CPU time (on all processors): 00:00:22

Does anyone have any suggestions or advice? Is running quartus_pow top.qpf appropriate for the Arria 10 device, or are there other approaches I can try? I read about this approach from a different post on this forum. Let me know if any more information is needed.

 

Thank you,

 

Jacob

0 Kudos
1 Solution
HRZ
Valued Contributor III
415 Views

You probably came across my advice on the forum. However, I only had success using quartus_pow on the placed and routed OpenCL design on Stratix V and could not use it on Arria 10 since it failed with some error similar to your case. Good news is, most Arria 10 boards have on-board power sensors which can be used to get accurate power readings. Since you are using a Nallatech board, they provide an MMD layer function which allows you to read the sensor in a C application. There is an example of how to use the function in "Nallatech OpenCL A10 BSP Reference Guide, Section 7.5 - MMD Layer Functions". I have written a header based on this function which can be used alongside with OpenCL application. You can find the header here:

 

https://github.com/zohourih/rodinia_fpga/blob/master/common/power_fpga.h

 

You can check the benchmarks inside of the repository to see how the header can be used. Please note that the header is made for the Nallatech 385A board but it should also work with the 510T board if the board name is corrected in the header. Furthermore, the header uses the old "altera"-based naming scheme used up until Quartus v16.1.2. I think the function names have been changed in the newer versions.

View solution in original post

1 Reply
HRZ
Valued Contributor III
416 Views

You probably came across my advice on the forum. However, I only had success using quartus_pow on the placed and routed OpenCL design on Stratix V and could not use it on Arria 10 since it failed with some error similar to your case. Good news is, most Arria 10 boards have on-board power sensors which can be used to get accurate power readings. Since you are using a Nallatech board, they provide an MMD layer function which allows you to read the sensor in a C application. There is an example of how to use the function in "Nallatech OpenCL A10 BSP Reference Guide, Section 7.5 - MMD Layer Functions". I have written a header based on this function which can be used alongside with OpenCL application. You can find the header here:

 

https://github.com/zohourih/rodinia_fpga/blob/master/common/power_fpga.h

 

You can check the benchmarks inside of the repository to see how the header can be used. Please note that the header is made for the Nallatech 385A board but it should also work with the 510T board if the board name is corrected in the header. Furthermore, the header uses the old "altera"-based naming scheme used up until Quartus v16.1.2. I think the function names have been changed in the newer versions.

Reply