Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
ChrisRackauckas
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
9 ms
·
61.
▲
by
ChrisRackauckas
3y ago
Definitely an interesting response I didn't see coming. This is one of the reasons to share preprints! IPOPT is a nonlinear optimization tool, not a nonlinear solver. Generally from what I've seen it's not a good idea to solv
62.
▲
by
ChrisRackauckas
3y ago
No, there are two types of GPU usage: the ensemble form and the array form. In the array form, you simply make your state variable a GPU and can run all internal operations on the GPU. This is used for GPU acceleration of `f` functions wher
63.
▲
by
ChrisRackauckas
3y ago
We have a lot of things compiling with web assembly, like the ODE solvers. See https://tshort.github.io/WebAssemblyCompiler.jl/stable/examp...
64.
▲
by
ChrisRackauckas
3y ago
> Concrete types in a function signature also work as assertions, so it's one way to force the compiler's hand this way. In many cases it's better to assert the arguments, rather than the parameters, to keep the method its
65.
▲
Semantic Versioning (Semver) is flawed, and Downgrade CI is required to fix it
(stochasticlifestyle.com)
4 points
by
ChrisRackauckas
3y ago
|
1 comments
66.
▲
by
ChrisRackauckas
3y ago
Totally agreed. In Julia we use https://github.com/SciML/MuladdMacro.jl all over the place so that way it's contextual and does not bleed into other functions. fast-math changing everything is just... dangerous.
67.
▲
by
ChrisRackauckas
3y ago
Indeed, and this year we created a system for compiling ODE code not just optimized CUDA kernels but also OneAPI kernels, AMD GPU kernels, and Metal. Peer reviewed version is here ( https://www.sciencedirect.com/science/
68.
▲
by
ChrisRackauckas
3y ago
julia> propertynames(x) () Nothing is the correct answer there because there are no properties. `x.y` for any y is an error, so that is correct. If what you're trying to do is instead discover functions which are compati
69.
▲
by
ChrisRackauckas
3y ago
Any page like that which is industry relevant is going to have to be associated with a company because you need the marketing team to go through the effort to get the case studies approved by each and every company. It's not an easy pr
70.
▲
by
ChrisRackauckas
3y ago
That's a bit different, and an interesting different. Certain types of partial differential equations like the one solved there generally use a form of step splitting (i.e. a finite volume method with a staggard grid). Those don't
71.
▲
by
ChrisRackauckas
3y ago
And you can always use the "Simple" versions, SimpleDiffEq.jl, SimpleNonlinearSolve.jl. Those libraries were made so that users could use exactly the same syntax but with dumbed down solvers with essentially zero latency. But yes
72.
▲
by
ChrisRackauckas
3y ago
Lux.jl does a really good job at being clear with syntax and hackable. I couldn't recommend it more. https://lux.csail.mit.edu/ . Here's good materials to start with: https://lux.csail.mit.edu/dev&#
73.
▲
by
ChrisRackauckas
3y ago
> discoverability of functions I think for the most part this is solved. It works very well and has good integration with VS Code: julia> integrator.<tab> EEst accept_step alg
74.
▲
by
ChrisRackauckas
3y ago
The load time improvements are amazing. Thanks to everyone that was involved. I've been using it locally for months now simply because of this feature and I had to update my "how to deal with compile-time" blog post ( https:&
75.
▲
by
ChrisRackauckas
3y ago
Indeed, autocorrect got a lot better. That coupled with how the stack traces and error messages are so much better now, I really cannot recommend anyone use anything but v1.10. Some releases are a more incremental (v1.7, v1.8), but this one
76.
▲
by
ChrisRackauckas
3y ago
The load time improvements are amazing. Thanks to everyone that was involved. I've been using it locally for months now simply because of this feature and I had to update my "how to deal with compile-time" blog post ( https:&
77.
▲
by
ChrisRackauckas
3y ago
The difference is really the level at which you are calling functions on the GPU. Say you have a function `f(x,y,z) = x .+ y .* sin.(z)`. If CUDA (simplify here, the paper does this for Intel OneAPI, Metal, IPUs, and AMD GPUs simultaneously
78.
▲
by
ChrisRackauckas
3y ago
In this case it's not tricks like those done in BLAS kernels. However, there are some intricacies about the algorithms that are chosen as noted in the paper. That said, most the difference here is simply from the difference in the high
79.
▲
by
ChrisRackauckas
3y ago
Confirmed in this collab notebook it doesn't make a tangible difference: https://colab.research.google.com/drive/1d7G-O5JX31lHbg7jTzz... .
80.
▲
by
ChrisRackauckas
3y ago
This collab notebook shows effectively no difference from doing this: https://colab.research.google.com/drive/1d7G-O5JX31lHbg7jTzz... . The average for diffrax on this collab machine goes from 20.5 to something like 20.
81.
▲
by
ChrisRackauckas
3y ago
I mean, it at least must not be obvious to the poster that says "the claim does sound too good to be true". But yes anyone with enough of an HPC background can look at how vmap is doing its parallelization and instantly know that
82.
▲
by
ChrisRackauckas
3y ago
> Mojo is a superset of Python Have you fired it up and tried to use it? I have not seen a single programmer who has used it and still called it a "superset of Python". It's definitely not a superset of Python, that's
83.
▲
by
ChrisRackauckas
3y ago
> Chris Rackauckas's team had to leverage AoT compilation (i.e. system images) to reduce TTFX on DifferentialEquations.jl [2]. In 2022 with Julia v1.8. See the edit from September. With Julia v1.10 it's mostly there without sys
84.
▲
by
ChrisRackauckas
3y ago
Indeed it's something in the middle. For data analysis, many people are used to using RStudio and just keeping a running REPL going, and Julia works quite well for these kinds of tasks in the same mode because that effectively removes
85.
▲
by
ChrisRackauckas
3y ago
Loading new Julia processes takes long because the standard library is rather large. One big part of v1.10 has been the excision of more standard libraries out of the the core image. This required some of the v1.9 and v1.10 improvements bec
86.
▲
by
ChrisRackauckas
3y ago
The next step is to enable more post-invalidation precompile for Plots. This is something we recently setup with Symbolics.jl since that is another package which has some "invalidation by design" patterns, where certain assumption
87.
▲
by
ChrisRackauckas
3y ago
It can be improved though. Part of the issue is my fault and I plan to redo the DiffEq solver defaulting mechanism in order to reduce the amount that needs to precompile. The design of how to do it is already pretty clear and it's most
88.
▲
by
ChrisRackauckas
3y ago
Looking at https://fortranwiki.org/fortran/show/elemental , it doesn't discuss how to fuse elementals with out elemental operations, their behavior on different dimensional inputs, or how to make any operation
89.
▲
by
ChrisRackauckas
3y ago
That's the most basic feature of broadcasting, but not quite what Julia's broadcasting is all about. There's also the case of things like f(x,y) = cos(x)*sin(y) g(x,y) = tan(x)*inv(y) x, y = (rand(4), rand(4))
90.
▲
by
ChrisRackauckas
3y ago
Yes it has not landed in Base, but you're acting like there has not been a general cultural changes. I showed, with receipts, that many of the most widely used packages in the Julia ecosystem have adopted new infrastructure, systems, a
More ›