Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ziggurat performance comparison (julia vs. C) #1211

Closed
ViralBShah opened this issue Aug 25, 2012 · 2 comments
Closed

ziggurat performance comparison (julia vs. C) #1211

ViralBShah opened this issue Aug 25, 2012 · 2 comments
Labels
performance Must go faster

Comments

@ViralBShah
Copy link
Member

The julia implementation of the ziggurat implementation is 2x slower than the C implementation for generating 1 million normally distributed random numbers.

julia, randn_zig,30.411958694458008
c,randn_zig,16.033888
JeffBezanson added a commit that referenced this issue Nov 16, 2012
this is an optimization and also makes it easier to get callback pointers.
closes #938. sparse on Range 3x faster
helps #1211 (ziggurat), about 25% faster
helps #1169 (game of go), about 25% faster
helps #939 (sortperm), about 25% faster
helps #1163 (graph centrality) a bit, about 10% faster
@ViralBShah
Copy link
Member Author

The difference is considerably reduced now.

c,randn_zig,18.842936
julia,randn_zig,23.12302589416504

Note that I get 14ms if I use clang -O4, but that uses LTO and is probably not a fair comparison.

@StefanKarpinski
Copy link
Member

Very nice. I'm sure we'll gradually close the gap with C on many of these sorts of things, which will be lovely for now, we're getting close enough and language features and API stability are a higher priority.

KristofferC added a commit that referenced this issue Feb 25, 2025
)

Stdlib: LinearAlgebra
URL: https://github.com/JuliaLang/LinearAlgebra.jl.git
Stdlib branch: master
Julia branch: master
Old commit: e7da19f
New commit: f781708
Julia version: 1.13.0-DEV
LinearAlgebra version: 1.12.0(Does not match)
Bump invoked by: @KristofferC
Powered by:
[BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl)

Diff:
JuliaLang/LinearAlgebra.jl@e7da19f...f781708

```
$ git log --oneline e7da19f..f781708
f781708 use the custom sysimage when running documentation (and doctests) as well (#1226)
8fdbfd5 Add `getindex` for `SymTridiagonal` using a `BandIndex` (#1223)
91b8845 Use `BandIndex` directly in `diagzero` call in `getindex` (#1222)
ef7ef3a Restrict triangular type aliases to `AbstractMatrix`es (#1220)
af7a9ac Use `BandIndex` directly in `diagzero` call in `getindex` for banded matrices
579b5f7 Specialize Diagonal * Adjoint (#1207)
5cf41c4 Indirection in matrix multiplication to avoid ambiguities (#1210)
0a9c164 Remove specialized `issymmetric`/`ishermitian` for `Diagonal{<:Number}` (#1213)
ff5648a Make unitary matrices in `svd`/`eigen` of `Diagonal` be unitless (#1155)
e096a03 Don't mutate arrays in symmetric trig functions (#1206)
c234bed Loop over `diagind` in `diag` for banded matrices (#1211)
57785c7 More resizing for truncating return values from LAPACK (#1190)
b464203 Materialize adjoint in mul with `HermOrSym` (#1191)
16d9d61 Restrict Diagonal sqrt branch to positive diag (#1203)
baa48b7 Verbose `showerror` for `SingularException` (#1204)
e0b59a7 Remove `LinearAlgebra` qualifications in `cholesky.jl` (#1209)
95d009b Remove `LinearAlgebra` qualifications in `cholesky.jl`
c550974 change to pivot
ed35a37 Add fast path in generic matmul (#1202)
8c7fe68 Detailed `showerror` for `SingularException`
2a1696a Explicitly declare type constructor imports (#1196)
101f766 Added note to BLAS.[g|s]et_num_threads about Apple Accelerate not supporting it  (#1195)
5aca26f Simplify `getproperty` for `Cholesky*` (#1197)
924dda4 remove copy-allocation on accessing `cholesky` factors (`.L`, `.U`) (#1186)
6f02532 Use `BLAS.trsm!` instead of `LAPACK.trtrs!` in left-triangular solves (#1194)
```

Co-authored-by: KristofferC <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance Must go faster
Projects
None yet
Development

No branches or pull requests

2 participants