Hi, all
I try to obtain the Q31 division using IQmath library for C6400 platform. I read form the TMS320C64x+ IQmath Library user guide, the averaged pipelined loop cycles for 1024 iterations is about 11.1 cycles. But from my profiler, I get only 69.3 cycles for one Q31 division, this value is almost the same as the single execution of one division. And from the building part, the _INLINE_IQMATH macro can't be enabled. So I'd like to know how to get the pipelined loop cycles if there's no the original assembly code?
Thanks.
Digital Signal Processing, ARM DSPs, Embedded System, Multi-core Programming
By the way, the following is the code I implement to profile a pipelined loop.
void fractionalDivide_vec(int *in1, int *in2, int n){ int i; int tempx, tempy; for(i=0;i<n;i++) { tempx = in1[i]; tempy = in2[i]; in1[i] = _IQNdiv(tempx, tempy, 31); }}
Hello Touse, the reason you are not seeing inlining take effect is because the source for IQNDiv is not released with the IQMath software package. (See here C:\CCStudio_v3.3\c64plus\IQmath_v213\include\IQmath_inline.h). We do provide the complete source for IQMath after prior approvals.
We are establishing a simpler process for requesting the source release. The process should be established in another month or so. But meanwhile, please write here: http://processors.wiki.ti.com/index.php?title=Software_libraries#Developer_Mailing_List and we can enable you with the source asap
Thanks,Gagan
----------------------------------------------------------------------------------------------------------Please click the Verify Answer button on this post if it answers your question.----------------------------------------------------------------------------------------------------------
Hi, Gagan.
Thanks for your reply. I open the link you provide, it just gives the software libraries TI provide. Do you mean if I modify the linked page and give my comments for what kind of source code, I can get the source release? The project is urgent, I don't have much time to wait for the approval of the software request.
Still, do you know why the performance differs so much? If using inlined source, should the performance of IQNdiv be close to 11 cycle per fractional division? Thanks for your quick responding.
Touse
Touse, sorry for confusion. I meant for you to send a mail at the developer's mailing list http://processors.wiki.ti.com/index.php?title=Software_libraries#Developer_Mailing_List (The mailing list is: c6swlib_dev@list.ti.com)
We will provide you the software ASAP once we hear from you. In your e-mail please briefly mention:* Your company of work and provide your official ID* Location where will the SW be used* Briefly describe how the SW will be used.
Thanks and we look forward to hearing from you.
Regards,Gagan
Thanks for your clear answer. I've send the e-mail to c6swlib_dev@list.ti.com, I'm looking forward to get the reply soon.
Hello Gagan,
Sorry to reply to an older, answered thread but I do have the IQMath source, yet have a problem with the Windows version of the IQMath library.
Our code runs under both C6x as well as Windows (for simulation/verification). You provide VC++ version 6 objects which (a) do not link under VS2008 or VS2010 because they need libcd.lib (b) won’t work under x64 because they’re built for x86 and I need x64 DLLs for my MATLAB testbench and (c) preclude usage under Vista or Win 7 because VC++ 6 cannot be installed on those OSes.
Can you provide the Windows source as well?
Thanks in advance,
-SQ
Gagan answered my question -- what I asked for can be found @ http://processors.wiki.ti.com/index.php/Run_Intrinsics_Code_Anywhere.