locked
How to reduce time to compile and build? RRS feed

  • Question

  • Hello!!

    I installed SoraSDK2.0 and play with uxmsdrbrick to implement some idea on 802.11g baseband processing.

    When I change something, I compile and build SoraSDK2.0 by opening x86 free build window and type 'bcz'. (Moreover, I follow previous post for building umxsdrbrick).

    But, unfortunately, it takes so much for finishing compilation and build (around 20~30 minutes). So, I just changed dirs file in src folder by removing all directories except umxsdrbrick. Is it correct way to compile and build only umxsdrbrick? In this way, it takes around 20~25 minutes, which is very inefficient in implementing new communication system. (actually there is no error) Could you give me some advice how to reduce compile and build time?

    Thank you.




    • Edited by Jaeims Tuesday, January 21, 2014 6:15 AM
    Monday, January 20, 2014 10:23 PM

Answers

  • 1. For your first question, I think it is OK. Umxsdrbrick needs some dependent libraries to build, if you have already fully built the source tree, and all your changes are local in the umxsdrbrick directory, you can safely 'bcz' in that directory.

    2. Yes, the long build time is a known issue for brick programming model. What it does is to flatten all the inline Process() functions in each component (called brick) to a huge function and optimize the instructions inside. Normally you don't need this aggressive optimization if you are in the development phase. Some possible methods:

    a. build the check version instead of free version

    b. replace 'FINL' with 'inline' in brick.h

    c. add TNoInline bricks into the processing graph. We also use this brick to reduce the build time. Normally the multiplexer(MUX) is a good place to insert this brick.

    However, these methods will influence the runtime speed (especially Method a). So take care of the trade-off.

    Thanks, -Qi

    • Proposed as answer by Qi LuoEditor Thursday, January 23, 2014 11:22 AM
    • Marked as answer by Qi LuoEditor Sunday, January 26, 2014 6:47 AM
    Thursday, January 23, 2014 11:22 AM
    Answerer

All replies

  • 1. For your first question, I think it is OK. Umxsdrbrick needs some dependent libraries to build, if you have already fully built the source tree, and all your changes are local in the umxsdrbrick directory, you can safely 'bcz' in that directory.

    2. Yes, the long build time is a known issue for brick programming model. What it does is to flatten all the inline Process() functions in each component (called brick) to a huge function and optimize the instructions inside. Normally you don't need this aggressive optimization if you are in the development phase. Some possible methods:

    a. build the check version instead of free version

    b. replace 'FINL' with 'inline' in brick.h

    c. add TNoInline bricks into the processing graph. We also use this brick to reduce the build time. Normally the multiplexer(MUX) is a good place to insert this brick.

    However, these methods will influence the runtime speed (especially Method a). So take care of the trade-off.

    Thanks, -Qi

    • Proposed as answer by Qi LuoEditor Thursday, January 23, 2014 11:22 AM
    • Marked as answer by Qi LuoEditor Sunday, January 26, 2014 6:47 AM
    Thursday, January 23, 2014 11:22 AM
    Answerer
  • Thank you for your answer.

    I followed your suggestion a. It reduces the time from 30 minutes to 8 minutes. But, its run-time speed is very slow ^^. But, it's okay in developing stage.


    Sunday, January 26, 2014 6:45 AM