to test performance of core m7

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
tazz
Level 3
Level 3
100 sign-ins 10 questions asked 25 replies posted

we want to test , what is the difference in performance in using single and dual core of m7  only(cm7_0 and cm7_1), we have xmc 7200 evaluation kit, kindly give code to test it . and how to shut one core (cm7_0) and run code on other

 

thanks 

 

0 Likes
1 Solution
Bhamy
Moderator
Moderator
Moderator
100 replies posted 10 likes given 10 likes received

Hi @tazz ,

If you refer the Multicore example project, in CM0P main file there are commands to enable CM7_0 and CM7_1 like below

 

/*Enable CM7 cores*/
Cy_SysEnableCM7(CORE_CM7_0, CY_CORTEX_M7_0_APPL_ADDR);
Cy_SysEnableCM7(CORE_CM7_1, CY_CORTEX_M7_1_APPL_ADDR);

/*Disable CM7 cores*/
Cy_SysDisableCM7(CORE_CM7_0);
Cy_SysDisableCM7(CORE_CM7_1);

 

 

If you want to disable a core then you may comment one of the above line. For further details on the available APIs refer the below document:

https://infineon.github.io/mtb-pdl-cat1/pdl_api_reference_manual/html/page_introducing_cat1c.html

SysLib will contain all the required APIs.

As mentioned before, in the current available libraries there are no provision for parallel threading to share the task. But one may use IPC to communicate between the cores and execute some tasks.

Kindly let me know if you need any further details.

Best regards,

Bhamy Narasimha Shenoy

View solution in original post

0 Likes
6 Replies
Bhamy
Moderator
Moderator
Moderator
100 replies posted 10 likes given 10 likes received

Hi @tazz ,

There is a Multicore example project for XMC7000 in Infineon Github which is good starting point for it. You may refer to code in CM0P which enables the CM7_0 and CM7_1. You may only enable one of the core which you need and the other core will not be enabled. Below is the link of the project:

Multicore empty application : https://github.com/Infineon/mtb-example-xmc7000-multicore-empty-app

Multicore IPC application: https://github.com/Infineon/mtb-example-xmc7000-multicore-ipc-pipes

Best regards,

Bhamy Narasimha Shenoy

0 Likes
tazz
Level 3
Level 3
100 sign-ins 10 questions asked 25 replies posted

hi thank you for your reply, but we are looking for parallel threading code which will run on (cm7_0 and cm7_1) and give club it  to give result . for example if we have matrix multiplication code one multiplication will be done on cm7_0 and concurrently other multiplication will be done on cm7_1, result will be clubbed of bot cores.

similarly this code will be tested on single cm7_0 to test the performance of single vs dual core.

regards

 

0 Likes
Bhamy
Moderator
Moderator
Moderator
100 replies posted 10 likes given 10 likes received

Hi @tazz ,

Currently, there is no readily available implementation for it. But you may create the matrix in shared memory and also save the result in shared memory and implement functions which will take even rows in CM7_0 and odd rows in CM7_1 for the multiplication. 

Best regards,

Bhamy Narasimha Shenoy 

0 Likes
tazz
Level 3
Level 3
100 sign-ins 10 questions asked 25 replies posted

thank you for your response, can you give commands to turn off CM7_0 or CM7_1 core. and any documents explaining it .

0 Likes
tazz
Level 3
Level 3
100 sign-ins 10 questions asked 25 replies posted

also how we can implement parallel threading on the dual cores (so that the work is being divided between cores) any steps to do that ?

0 Likes
Bhamy
Moderator
Moderator
Moderator
100 replies posted 10 likes given 10 likes received

Hi @tazz ,

If you refer the Multicore example project, in CM0P main file there are commands to enable CM7_0 and CM7_1 like below

 

/*Enable CM7 cores*/
Cy_SysEnableCM7(CORE_CM7_0, CY_CORTEX_M7_0_APPL_ADDR);
Cy_SysEnableCM7(CORE_CM7_1, CY_CORTEX_M7_1_APPL_ADDR);

/*Disable CM7 cores*/
Cy_SysDisableCM7(CORE_CM7_0);
Cy_SysDisableCM7(CORE_CM7_1);

 

 

If you want to disable a core then you may comment one of the above line. For further details on the available APIs refer the below document:

https://infineon.github.io/mtb-pdl-cat1/pdl_api_reference_manual/html/page_introducing_cat1c.html

SysLib will contain all the required APIs.

As mentioned before, in the current available libraries there are no provision for parallel threading to share the task. But one may use IPC to communicate between the cores and execute some tasks.

Kindly let me know if you need any further details.

Best regards,

Bhamy Narasimha Shenoy

0 Likes