[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [sumo-user] Looking for a large SUMO network for benchmarking
|
Hi Jakob,
For x64 build, SSE is always enabled by the compiler, so it is a no-option.
I noticed that for fairly large network (such the Morocco network), SUMO on my computer can achieve an overall real time factor of about x15~x20, which is faster than Aimsun and Vissim, and comparable to TransModeler - TransModeller is pretty fast due to its internal assembly-level optimization so it is hard to beat.
I also noticed that if the /GS compiler switch is explicitly disabled, then SUMO is slightly faster (0.8 ~1%). The /GS by default is ON for buffer overflow protection, which should be a non issue since SUMO is open source anyway. I would personally just turn it OFF. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GS-")
For further performance improvement (beyond compiler settings), as you noted - probably would have to be resorted to SSE/AVX2/AVX512 intrinsics, parallelisms and fine tuning - probably most of the users wouldn't care much.
Thank you again.
Wuping
------ Original Message ------
Sent: 8/17/2021 1:53:36 AM
Subject: Re: Re[2]: [sumo-user] Looking for a large SUMO network for benchmarking
Hi Wuping,
The Windows platform release is built with MSVC.
Actually, SUMO has plenty of floating point computation. However, it's has few loops that can be vectorized automatically by a compiler and we do not use any of the SSE/AVX2/AX512 intrinsics in our code.
Most of the data parallelism happens at the vehicle level but each vehicle has individual numbers to compute rather than vectors of numbers.
Put briefly:
for v in vehicles:
calculate many things (without vectors)
regards,
Jakob
Hi Jakob,
Thanks for the heads up.
I selected the Cologne network. I rebuild sumo.exe, sumogui.exe, and netedit.exe, with AVX2 enabled (my computer's CPU only supports AVX2). I used Visual Studio 2019 C++ compiler version 16.10.
It seems - with AVX2 enabled, SUMO was getting slightly SLOWER (! about 1% slower), compared to the standard public release.
I didn't tested the SSE, nor AVX512.
Admittedly, this is not a very rigorous benchmarking. But 1% slower was still a surprise. I guess the SUMO computation is not very floating-point-intensive?
I will continue with SSE and AVX512 (need to find a supporting CPU though).
P.S. What is the compiler used for the original SUMO's public release on Windows platform? MSVC, Clang, or Mingw?
Wuping
------ Original Message ------
Sent: 8/16/2021 12:47:05 PM
Subject: Re: [sumo-user] Looking for a large SUMO network for benchmarking
Hello,
The biggest one is brunswick (run brunswick/miv/build.sh and the brunswick/miv/oneshot.sumocfg)
I'd be interested in learning about your benchmark results.
regards,
Jakob
I have been learning SUMO source code recently, and would like to thank the SUMO developers for this excellent open-source work.
SUMO is probably the only successful (and enterprise-grade) open-source traffic simulator that has good performance (native C++), quality code (both coding and styles), extensive documentation, and an active user community worldwide.
However, the public SUMO binary release does not have AVX2/AVX512 enhance instruction set enabled.
Thanks to the availability of all sources and dependencies, I was able to make a special build (on Windows platform) that has AVX2 /AVX512 enabled. I would like to do some performance benchmarking.
Is there someone who can donate network file that is LARGE, for me to use as the basis for the benchmarking?
Thanks in advance.
Wuping Xin
_______________________________________________
sumo-user mailing list
sumo-user@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user