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 ------
From: "Jakob Erdmann" <[email protected]>
To: "Wuping Xin" <[email protected]>
Cc: "Sumo project User discussions" <[email protected]>
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
Am Di., 17. Aug. 2021 um 02:55 Uhr schrieb Wuping Xin
<[email protected]>:
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 ------
From: "Jakob Erdmann" <[email protected]>
To: "Wuping Xin" <[email protected]>; "Sumo project User discussions"
<[email protected]>
Sent: 8/16/2021 12:47:05 PM
Subject: Re: [sumo-user] Looking for a large SUMO network for
benchmarking
Hello,
There are public scenarios for download at
https://github.com/DLR-TS/sumo-scenarios
The biggest one is brunswick (run brunswick/miv/build.sh and the
brunswick/miv/oneshot.sumocfg)
Larger larger scenario can be found here:
https://sumo.dlr.de/docs/Data/Scenarios.html
If you need even larger networks, download the country of your choice
at http://download.geofabrik.de/ and import with netconvert.
- import: https://sumo.dlr.de/docs/Networks/Import/OpenStreetMap.html
- random traffic should be enough for benchmarking:
https://sumo.dlr.de/docs/Tools/Trip.html#randomtripspy
I'd be interested in learning about your benchmark results.
regards,
Jakob
Am Mo., 16. Aug. 2021 um 17:49 Uhr schrieb Wuping Xin
<[email protected]>:
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
[email protected]
To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/sumo-user
_______________________________________________
sumo-user mailing list
[email protected]
To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/sumo-user