Forums

Profiling Code timings

Started by Imran Akthar March 5, 2004
Hi there,
   I m using DM642 simulator,600MHz,CCS ver 2.2,WINDOWS 2000 OS.
   I have a algorithmn and i want to check the time taken by it.
   I m using clock() function and getting the result as number of cycles taken by the algorithmn.
   what i have done is
   in the PROFILER->CLOCK SETUP,time taken by CPU cycles as 1.67 ns.
   Pipe line adjustments as 0(default)
   my algoritmn uses lot of memory read and write operations,that too external memory(in the linker file,i have used SDRAM space for .sysmem(heap)).
    my question is
    1)do i need to specify the time taken for memory read and write in PROFILER ->CLOCK SETUP(by default ,its 0 ns).
    2)regarding the clock() function,is the cycles it returns is of my PC or the DSP simulator which m using.
     also,since the return value of clock() function is in cycles,its mentioned to use CLOCK_PER_SEC to get the time in sec.whats the value of CLOCK_PER_SEC(is it the clock freq. of the dsp board,in my case m using simultor having a freq of 600 MHz??).
   3)also,while using the simulator,its taking lot of time,for example,during one process,it took approximately 10 minutes of my PC time,but the simulator results in cycles was a value less that <600 MHz,taht means ..it takes less that 1 sec time,when i want to calculate in terms of seconds.??
     if m right,then ,y the simulator takes so long time,??
     and what when the algo,is put into the BOARD,will it  give the same result in terms of cycle and hence less than 1 sec??or will it take time as was taken by my PC..that is 10 minutes..??
    4)can  i use DM642 using MATLAB/SIMULINK???

hope my questions are clear..??
 
well..m new to this CCS studio..so need help..
 
thanks
 
MA IMRAN



is there anyone who can answer Imran's question?
I have the just the same douts

Imran Akthar <i...@yahoo.com> wrote:
Hi there,
   I m using DM642 simulator,600MHz,CCS ver 2.2,WINDOWS 2000 OS.
   I have a algorithmn and i want to check the time taken by it.
   I m using clock() function and getting the result as number of cycles taken by the algorithmn.
   what i have done is
   in the PROFILER->CLOCK SETUP,time taken by CPU cycles as 1.67 ns.
   Pipe line adjustments as 0(default)
   my algoritmn uses lot of memory read and write operations,that too external memory(in the linker file,i have used SDRAM space for .sysmem(heap)).
    my question is
    1)do i need to specify the time taken for memory read and write in PROFILER ->CLOCK SETUP(by default ,its 0 ns).
    2)regarding the clock() function,is the cycles it returns is of my PC or the DSP simulator which m using.
     also,since the return value of clock() function is in cycles,its mentioned to use CLOCK_PER_SEC to get the time in sec.whats the value of CLOCK_PER_SEC(is it the clock freq. of the dsp board,in my case m using simultor having a freq of 600 MHz??).
   3)also,while using the simulator,its taking lot of time,for example,during one process,it took approximately 10 minutes of my PC time,but the simulator results in cycles was a value less that <600 MHz,taht means ..it takes less that 1 sec time,when i want to calculate in terms of seconds.??
     if m right,then ,y the simulator takes so long time,??
     and what when the algo,is put into the BOARD,will it  give the same result in terms of cycle and hence less than 1 sec??or will it take time as was taken by my PC..that is 10 minutes..??
    4)can  i use DM642 using MATLAB/SIMULINK???

hope my questions are clear..??
 
well..m new to this CCS studio..so need help..
 
thanks
 
MA IMRAN



Note: If you do a simple "reply" with your email client, only the author of this message will receive your answer.  You need to do a "reply all" if you want your answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:  Send an email to c...@yahoogroups.com

To Post:  Send an email to c...@yahoogroups.com

To Leave: Send an email to c...@yahoogroups.com

Archives: http://www.yahoogroups.com/group/c6x

Other Groups: http://www.dsprelated.com





I do not know if I can answer the "real question", but I will be glad to share what I know [and what i think].
 
The key thing to remember about the 'profile clock' is that it is a counter [normally configured as a counter of  DSP clocks].  On the simulator, this models the DSP that has a separate hardware counter.  The count/clock input signal is selected by a mux [see the setup options] - i think that 'clock' is the most useful [usually]. I have no idea what the purpose of the "time" is - all that I care about is the number of clocks.  If you are running in internal memory, you can pretty much scale the clock count to time.
 
For timing programs in external memory, I would not use the 'fast' simulator [I have had problems in the past].  The EMIF must be set up correctly.  I personally have a fair amount of skepticism in regard to the simulator modeling cache and external SDRAM.  If I have something that I want to run on the simulator, I try to get at least alittle time on some hardware so that I can check the simulator calibration.
 
The time that the simulator takes to execute code may not be directly proportional to the time that the DSP will take.  Two things matter - simulator accuracy and 'number of clocks' [some might add speed].  if the accuracy is good then convert the clocks to time using the target speed of your choice.
 
I hope that this helps some.
 
mikedunn

qqzj tony <t...@yahoo.com.cn> wrote:
is there anyone who can answer Imran's question?
I have the just the same douts

Imran Akthar <i...@yahoo.com> wrote:
Hi there,
   I m using DM642 simulator,600MHz,CCS ver 2.2,WINDOWS 2000 OS.
   I have a algorithmn and i want to check the time taken by it.
   I m using clock() function and getting the result as number of cycles taken by the algorithmn.
   what i have done is
   in the PROFILER->CLOCK SETUP,time taken by CPU cycles as 1.67 ns.
   Pipe line adjustments as 0(default)
   my algoritmn uses lot of memory read and write operations,that too external memory(in the linker file,i have used SDRAM space for .sysmem(heap)).
    my question is
    1)do i need to specify the time taken for memory read and write in PROFILER ->CLOCK SETUP(by default ,its 0 ns).
    2)regarding the clock() function,is the cycles it returns is of my PC or the DSP simulator which m using.
     also,since the return value of clock() function is in cycles,its mentioned to use CLOCK_PER_SEC to get the time in sec.whats the value of CLOCK_PER_SEC(is it the clock freq. of the dsp board,in my case m using simultor having a freq of 600 MHz??).
   3)also,while using the simulator,its taking lot of time,for example,during one process,it took approximately 10 minutes of my PC time,but the simulator results in cycles was a value less that <600 MHz,taht means ..it takes less that 1 sec time,when i want to calculate in terms of seconds.??
     if m right,then ,y the simulator takes so long time,??
     and what when the algo,is put into the BOARD,will it  give the same result in terms of cycle and hence less than 1 sec??or will it take time as was taken by my PC..that is 10 minutes..??
    4)can  i use DM642 using MATLAB/SIMULINK???

hope my questions are clear..??
 
well..m new to this CCS studio..so need help..
 
thanks
 
MA IMRAN



Note: If you do a simple "reply" with your email client, only the author of this message will receive your answer.  You need to do a "reply all" if you want your answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:  Send an email to c...@yahoogroups.com

To Post:  Send an email to c...@yahoogroups.com

To Leave: Send an email to c...@yahoogroups.com

Archives: http://www.yahoogroups.com/group/c6x

Other Groups: http://www.dsprelated.com





Note: If you do a simple "reply" with your email client, only the author of this message will receive your answer.  You need to do a "reply all" if you want your answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:  Send an email to c...@yahoogroups.com

To Post:  Send an email to c...@yahoogroups.com

To Leave: Send an email to c...@yahoogroups.com

Archives: http://www.yahoogroups.com/group/c6x

Other Groups: http://www.dsprelated.com