> > I'd be curious to know if changing "rustc -O" to "rustc --opt-level=3" has > any effect. Which is to say, I'm curious if currently we make any > distinction at all between opt levels 2 and 3. > There was no difference when I ran it with --opt-level=3.
Also, what version of Rust? I believe our support for > LLVM-SIMD-vectorization-pass voodoo only landed recently. My rust is current as of sometime yesterday. On Tue, Sep 24, 2013 at 3:51 PM, Benjamin Striegel <[email protected]>wrote: > I'd be curious to know if changing "rustc -O" to "rustc --opt-level=3" has > any effect. Which is to say, I'm curious if currently we make any > distinction at all between opt levels 2 and 3. > > Also, what version of Rust? I believe our support for > LLVM-SIMD-vectorization-pass voodoo only landed recently. > > > On Tue, Sep 24, 2013 at 2:13 PM, Tim Kuehn <[email protected]> wrote: > >> To make it a "fair" fight, I converted the Go and C++ versions to trace >> "Rust" instead. These are my results on my Macbook Pro: >> >> === RUST === >> $ rustc -O bin.rs >> $ time ./bin > rrays.ppm >> >> real 0m14.472s >> user 0m14.102s >> sys 0m0.365s >> >> === GO === >> $ go build main.go >> $ time ./main > grays.ppm >> >> real 0m13.928s >> user 0m13.914s >> sys 0m0.020s >> >> === C++ === >> $ gcc -O crays.cpp >> $ time ./a.out > crays.ppm >> >> real 0m10.800s >> user 0m10.794s >> sys 0m0.005s >> >> === RANKINGS === >> 1) C++ : 10.8s >> 2) Go : 13.9s >> 3) Rust : 14.5s >> >> >> On Tue, Sep 24, 2013 at 1:59 PM, Geoffrey Irving <[email protected]> wrote: >> >>> It seems like rust would perform better in this benchmark against >>> languages like Erlang and Haskell, which have even longer names. >>> >>> Geoffrey >>> >>> On Sep 24, 2013, at 10:08 AM, John Mija <[email protected]> wrote: >>> >>> > Summary: Rustc 17.7s, Go 13.6s, Clang 11.2s, GCC 10.4s. >>> > >>> > Note that the versions in Clang, G++ and Go are rendering the word >>> "Go" while that the Rust version is rendering a word bigger "Rust" >>> > >>> > System: x86_64 GNU/Linux 3.8.0-30-generic >>> > Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz >>> > 4 GB RAM >>> > >>> > I've used Rust trunk, Go 1.1.2: >>> > >>> > $ gcc --version >>> > gcc (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3 >>> > >>> > $ clang --version >>> > Ubuntu clang version 3.2-1~exp9ubuntu1 (tags/RELEASE_32/final) (based >>> on LLVM 3.2) >>> > Target: x86_64-pc-linux-gnu >>> > Thread model: posix >>> > >>> > $ go version >>> > go version go1.1.2 linux/amd64 >>> > >>> > $ rust --version >>> > rust 0.8 (b6fe27c 2013-09-24 07:06:09 -0700) >>> > host: x86_64-unknown-linux-gnu >>> > >>> > * * * >>> > >>> > $ rustc --opt-level=3 raytracer.rs -o rayt-rust >>> > $ time ./rayt-rust > rayt-rust.ppm >>> > >>> > real 0m17.746s >>> > user 0m17.332s >>> > sys 0m0.404s >>> > >>> > $ go tool 6g raytracer.go && go tool 6l -o rayt-go raytracer.6 && rm >>> raytracer.6 >>> > >>> > $ time ./rayt-go > rayt-go.ppm >>> > >>> > real 0m13.664s >>> > user 0m13.656s >>> > sys 0m0.008s >>> > >>> > $ clang -O3 -lm raytracer.cpp -o rayt-clang >>> > $ time ./rayt-clang > rayt-clang.ppm >>> > >>> > real 0m11.199s >>> > user 0m11.188s >>> > sys 0m0.004s >>> > >>> > $ g++ -O3 -lm raytracer.cpp -o rayt-g++ >>> > $ time ./rayt-g++ > rayt-g++.ppm >>> > >>> > real 0m10.411s >>> > user 0m10.404s >>> > sys 0m0.000s >>> > >>> > >>> > El 24/09/13 14:52, Huon Wilson escribió: >>> >> On 24/09/13 16:18, John Mija wrote: >>> >>> Since a post in HN about a raytracer into a business card, a guy >>> built >>> >>> the implementation in Go: >>> >>> >>> >>> https://groups.google.com/forum/#!topic/golang-nuts/mxYzHQSV3rw >>> >>> >>> >>> The C++ version: https://gist.github.com/kid0m4n/6680629 >>> >>> The Go version: https://github.com/kid0m4n/gorays >>> >>> >>> >>> Performance (2.2 Ghz Quad Core (2675QM), 16 GB RAM, OX 10.9, Go >>> 1.1.2): >>> >>> >>> >>> C++ version: 11.803 s >>> >>> Go version: 28.883 s >>> >>> >>> >>> * * * >>> >>> It would be interesting if somebody with experience in Rust could >>> >>> build the version in Rust to compare the speed. >>> >>> _______________________________________________ >>> >>> Rust-dev mailing list >>> >>> [email protected] >>> >>> https://mail.mozilla.org/listinfo/rust-dev >>> >> >>> >> I bit: https://github.com/huonw/card-trace >>> >> >>> >> Summary: Clang 13.8s, GCC 17.9s, Rustc 17.9s. >>> >> >>> >> (1.9GHz 3517U, 8 GB, linux. GCC: 4.8.1, Clang: 3.3, rustc: 18e3bcd >>> >> 2013-09-23 23:46:05 -0700.) >>> >> >>> >> I just did essentially a transliteration of the C++ into (reasonably >>> >> idiomatic) Rust, I imagine one could make it faster with some effort, >>> >> but that would be cheating (at least, it would then become a test of >>> >> *my* micro-optimisation ability, rather than that of the compilers). >>> It >>> >> appears that clang vectorises/uses SSE directly more eagerly than >>> either >>> >> gcc or rustc from some quick poking with perf. >>> >> >>> >> (I don't have Go on this computer to compare; although I imagine the >>> >> only comparison of interest would be with gccgo, since "normal" go >>> >> doesn't optimise anywhere near as much as LLVM does.) >>> >> >>> >> Huon >>> >> _______________________________________________ >>> >> Rust-dev mailing list >>> >> [email protected] >>> >> https://mail.mozilla.org/listinfo/rust-dev >>> >> >>> >> >>> > _______________________________________________ >>> > Rust-dev mailing list >>> > [email protected] >>> > https://mail.mozilla.org/listinfo/rust-dev >>> >>> >>> _______________________________________________ >>> Rust-dev mailing list >>> [email protected] >>> https://mail.mozilla.org/listinfo/rust-dev >>> >>> >> >> _______________________________________________ >> Rust-dev mailing list >> [email protected] >> https://mail.mozilla.org/listinfo/rust-dev >> >> > > _______________________________________________ > Rust-dev mailing list > [email protected] > https://mail.mozilla.org/listinfo/rust-dev > >
_______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
