Hello,
I am currently trying to create a large system with AWE.
I have built the system, set native as the target, and when I tried to run the system, I confirmed that CPU overflow was occurring.
However, I checked the Windows task manager and found that the CPU utilization is about 40%, so I do not believe that this is an overflow.
Checking the AWE Server, the following is observed:
CPU clock rate: 2.995 GHz
Profile clock rate: 10 MHz
What is the profile clock rate here?
If this Native target is only running at 10 MHz, I believe it is possible for a CPU overflow to occur.
If so, is it possible to change the Native target's operating clock rate?
What we are considering now is to first check the system operation on the Native target, and then check the load factor on the SoC to be selected.
However, if the load is so high that CPU overflow occurs on the Native target, we need to review the system configuration. We would also like to know how much performance this Native target has.
Attached is a screen capture of the AWE Server MHz and Memory Profiling when a CPU overflow occurred.
10:50am
Hi yanagi,
The profile clock rate is the speed at which cycles are counted for profiling, not your CPU. Profiling is viewed one core at a time, whereas the Task Manager percentage accounts for the total use of all cores. I would first suggest running peak to peak profiling as it appears something is causing periodic spiking at ~500%. You could try switching the design to a larger block size with your design which will increase memory consumption but reduce CPU load. As a side note, in native mode you can distribute sections of a design to different cores with the IPC Buffer module, but this is only useful if you also plan to make use of multiple cores on your SoC.
11:14pm
Hi Kyle
I now understand the profile clock rate, thank you.
I ran the system to check the load factor of one core of the CPU.
The AWE Server is experiencing CPU overflow most of the time, but looking at the behavior of each core in the task manager, there is no core whose load ratio is always at 100%. In addition, spikes were seen on all cores.
The images below show the CPU load ratio when AWE is not running and when it is running.
Looking at this alone, it appears that AWE is allocating some task to all cores.
If a task is allocated to one of the cores, does this mean that the system model we are currently building will be difficult to realize on a single core, even using an Intel CPU?
Unfortunately, the majority of this system model is an algorithm that needs to compute and process signals one sample at a time, so the block size cannot be increased....
I also checked the help for the IPC Buffer module you advised, but I found that that module introduces a delay for the block size, and I think it is difficult to use it because the delay of one sample has a significant impact on the system.
Now, I am trying to realize this system with the modules provided by AWE, but if I write all the functions in C code and create a dedicated module in the module creator, will it lighten the CPU load?
Actually, this attempt is to port a model created in Simulink to AWE.
I was building the system with the expectation that the same model in Simulink would run without problems and the CPU load would not be too high, so the same thing would run in AWE without any problems....
12:01am
Hello Yanagi-san,
Let me please email you about this on the side, so we can continue discussions more efficiently.
Thanks,
Kevin