Compile times in xTIMEcomposer 14.4.1

Technical questions regarding the XTC tools and programming with XMOS.
magnus
Member
Posts: 13
Joined: Tue Aug 06, 2019 8:40 pm

Compile times in xTIMEcomposer 14.4.1

Post by magnus »

I recently tried out the new version (14.4.1) of xTIMEcomposer and tools. We are developing for the 4-tile XE232 processor so was previously using version 14.3.3.

Unfortunately the final steps of compiling (I guess linking and XMOS specific stuff) is significantly slower on 14.4.1, it is hard to justify that without knowing what differences there are. Below are the compile times for a fairly large project. These tests are done under linux but we have seen similar results also on Windows 10 and OS X and on different types hardware.

14.3.3
Complete build from scratch: 54 seconds.
Incremental build (with no code changes): 38 seocnds.

14.4.1
Complete build from scratch: 3 minutes and 53 seconds.
Incremental build (with no code changes): 3 minutes and 34 seconds.

So 14.4.1 is about 3 minutes slower than 14.3.3 during the last stage of compiling, even in incremental builds. This is quite painful during development. Why is there
such a big difference? Are there any known compiler bugs in 14.3.3 that one should know about? Because as it is now I'd rather continue working on 14.3.3.


User avatar
akp
XCore Expert
Posts: 578
Joined: Thu Nov 26, 2015 11:47 pm

Post by akp »

I don't work with the 4 tile device but I work with XE216. Now that you mention it, it seems like the final stage of the build is slower than before. I didn't quantify it yet but I should do. I would say if you're happy with the performance on 14.3.3 then stay with that. Thank you for reporting, hopefully XMOS can correct the problem in their next version, but it could take a while. I suspect they're busy with the tools for the XS3 architecture.

I wonder if you tried pulling in just the xmap from 14.3.3 to the 14.4.1 toolchain if that would work or not, it might not work. But if it did that might reduce your build times and at least benefit from the updates to xcc (if there are any).
magnus
Member
Posts: 13
Joined: Tue Aug 06, 2019 8:40 pm

Post by magnus »

Thanks,
just replace the xmap binary? Tried it just for fun, reran the numbers from 14.3.3 as well as there has been a lot of work in the code base since the last benchmark (which I ran in February or something).

14.3.3: full rebuild: 71s, incremental (no code change): 51s
14.4.1 with xmap from 14.3.3: full rebuild: 72s, incremental (no code change): 51s. NOTE: I did not try the binary to see if it actually produced something workable.
14.4.1 with original xmap: full rebuild: 298s, incremental (no code change): 277s

So, indeed all of the difference seems to come from xmap.
User avatar
akp
XCore Expert
Posts: 578
Joined: Thu Nov 26, 2015 11:47 pm

Post by akp »

If you don't mind reporting this to XMOS I think that would be helpful. Obviously they made a change in xmap that really impacts its performance.
User avatar
akp
XCore Expert
Posts: 578
Joined: Thu Nov 26, 2015 11:47 pm

Post by akp »

I tried my build and for my situation using the 14.4.1 xmap only added 10 seconds so it may not be worth it for me to use the 14.3.3 xmap. When I run the binary it works OK though, and time is money. Even 10 seconds I suppose.