• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Digital Signal Processors (DSP) » C6000 Single Core DSP » C64x Single Core DSP Forum » About the inline of IQNdiv functions in IQMath library
Share
C6000 Single Core DSP
  • Forums
  • Announcements
Options
  • Subscribe via RSS

Forums

About the inline of IQNdiv functions in IQMath library

This question is answered
touse
Posted by touse
on Oct 18 2010 02:04 AM
Expert1475 points

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

C64x IQmath
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • touse
    Posted by touse
    on Oct 18 2010 03:30 AM
    Expert1475 points

    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);
        }
    }

    Digital Signal Processing, ARM DSPs, Embedded System, Multi-core Programming

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Gagan Maur
    Posted by Gagan Maur
    on Oct 21 2010 16:04 PM
    Expert4435 points

    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.
    ----------------------------------------------------------------------------------------------------------

    DSPLIB
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • touse
    Posted by touse
    on Oct 21 2010 23:18 PM
    Expert1475 points

    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

    Digital Signal Processing, ARM DSPs, Embedded System, Multi-core Programming

    IQmath library source
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Gagan Maur
    Posted by Gagan Maur
    on Oct 22 2010 09:39 AM
    Verified Answer
    Verified by touse
    Expert4435 points

    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

     

     

    ----------------------------------------------------------------------------------------------------------
    Please click the
    Verify Answer button on this post if it answers your question.
    ----------------------------------------------------------------------------------------------------------

    DSPLIB
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • touse
    Posted by touse
    on Oct 24 2010 20:27 PM
    Expert1475 points

     

    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.

    Digital Signal Processing, ARM DSPs, Embedded System, Multi-core Programming

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • SQ
    Posted by SQ
    on Apr 14 2012 00:50 AM
    Prodigy170 points

    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

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • SQ
    Posted by SQ
    on Apr 14 2012 23:02 PM
    Prodigy170 points

    Gagan answered my question -- what I asked for can be found @ http://processors.wiki.ti.com/index.php/Run_Intrinsics_Code_Anywhere.

    -SQ

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use