>
> 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

Reply via email to