HackerTrans
TopNewTrendsCommentsPastAskShowJobs

vchuravy

no profile record

Submissions

Cutile.jl 0.3: CUDA.jl integration, and better performance and latency

juliagpu.org
1 points·by vchuravy·2 bulan yang lalu·0 comments

Julia in Google Collab

discourse.julialang.org
3 points·by vchuravy·tahun lalu·0 comments

DTable a new distributed table implementation in Julia using Dagger.jl

julialang.org
19 points·by vchuravy·5 tahun yang lalu·5 comments

Debugging Julia with GDB and VSCode

vchuravy.dev
2 points·by vchuravy·5 tahun yang lalu·0 comments

BPFTrace and Julia

vchuravy.dev
49 points·by vchuravy·5 tahun yang lalu·0 comments

Cuda.jl 3.0 – GPU programming in Julia

juliagpu.org
3 points·by vchuravy·5 tahun yang lalu·0 comments

comments

vchuravy
·2 bulan yang lalu·discuss
Arrested is not the same as convicted. I lived in Japan for a few years, and I have heard of similar situations to what the article describes.

In Japan you can be arrested while an investigation is in process, only afterwards you will be indicted. Additionally, Japan does not permit defendants to post bail prior to an indictment.

Yes Japan has a really high conviction rate, but that is because they indict only cases were a conviction is likely.

Arrests don't need to lead to the person being indicted.
vchuravy
·5 bulan yang lalu·discuss
My point is if you set JULIA_CPU_TARGET during the docker build process, you will get relocatable binaries that are multi-versioned and will work on other micro-architecture? It's not just for PackageCompiler, but also for Julia's native code cache.
vchuravy
·5 bulan yang lalu·discuss
I am very interested in improving the user-experience around precompilation and performance, may I ask why you are creating a sysimage from scratch?

> I would opt into prebuilt x86_64 generic binaries if Julia had them

The environment varial JULIA_CPU_TARGET [1] is what you are looking for, it controls what micro-architecture Julia emits for and supports multi-versioning.

As an example Julia is built with [2]: generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)

[1] https://docs.julialang.org/en/v1/manual/environment-variable...

[2] https://github.com/JuliaCI/julia-buildkite/blob/9c9f7d324c94...
vchuravy
·tahun lalu·discuss
Very cool. Does the dynamic instrumentation handle JIT emitted code?
vchuravy
·2 tahun yang lalu·discuss
We use RR a lot with Julia. It only gives you a GDB view of the system, but it can work with any interpreted or compiled language.

Things that don't work are drivers that update mapped addresses directly. An example of this is CUDA in order to replay one would need to model the driver interactions (and that's even before you get to UVM)

Another great thing is that RR records the process tree and so you can easily look at different processes spawned by your executable.
vchuravy
·3 tahun yang lalu·discuss
Ah but what defines madness? For me it's innocuous functions that have surprising/wild behavior due to type inference disagreeing with me.

Most of the time I am the one wrong.
vchuravy
·3 tahun yang lalu·discuss
Yeah in the end this the difference between dynamical and static typing.

I enjoy https://tratt.net/laurie/research/pubs/html/tratt__dynamical... as a discussion of dynamic typing.
vchuravy
·3 tahun yang lalu·discuss
One of the authors here, happy to answer questions.
vchuravy
·3 tahun yang lalu·discuss
> And dealing with bugs in LLVM is basically a no-go, I've seen this happen in the Julia ecosystem as well.

As one of the folks dealing with LLVM bugs in the Julia ecosystem.

Yes it requires a distinct skillet different from working on the higher-level Julia compiler and yes it can sometimes take ages to merge bugfixes upstream, but we actually have a rather good and productive relationship with upstream and the project would get a lot less done if we decided to get rid of LLVM.

In particular GPU support and HPC support (hello PPC) depends on it.

But this is also why we maintain the stance that people need to build Julia against our patchset/fork and will not invest time in bugs filled against Julia builds that didn't use those patches. This happens in particular with distro builds.
vchuravy
·3 tahun yang lalu·discuss
Yeah I often describe Julia as a Lisp in sheep's clothing.

Or as the m-Lisp promised to us :) I chuckled when I read:

> The way that common Lisp systems produce executable binaries to be used as application deliverables is by literally dumping the contents of memory into a file with a little header to start things back up again.

Which is pretty much of Julia's sys-/pkgimages work. Pkgimages are an incremental variation on this idea.

One of the novelties in Julia is the world-age system and the limits on dynamisim it introduces on eval.
vchuravy
·3 tahun yang lalu·discuss
Yes that is precisely what was fixed, essentially the thread local storage that Julia was expecting were not setup and thus calling the runtime from a foreign thread would cause a crash.

This now enables to dynamically add and remove threads.
vchuravy
·3 tahun yang lalu·discuss
How closely tied is this to Python? The need for reactivity is what drove the development for Pluto.jl, but it would be nice to have something like this for IJulia.jl as well.
vchuravy
·3 tahun yang lalu·discuss
How closely tied is this to Python? The need for reactivity is what drove the development for Pluto.jl, but it would be nice to have something like this for IJulia.jl as well.
vchuravy
·3 tahun yang lalu·discuss
Don't ask me about GNU_UNIQUE...

Due to some wonderful C++ features the dynamic linker is forced to unify symbols across shared libraries, even if those symbols have different versions.

This utterly breaks loading multiple libLLVM's except if you build the copy you care about with -no-gnu-unique (or whatever the flag was called)

I have seen wonderful things like the initializers of an already loaded libLLVM being rerun when a new one is loaded.
vchuravy
·4 tahun yang lalu·discuss
Also Be-sharper would have been a great pronouciation.
vchuravy
·4 tahun yang lalu·discuss
- Jupiter: Yes, Julia was one of the first non-python IPython/Jupiter kernel - Pandas: DataFrames.jl - Numpy: Basically the available as part of the stdlibs/language - Scipy: Yes, but not as one meta package - Matplotlib: Yes directly as Pyplot.jl or in alternatives such as Plots.jl or Makie.jl

- Pytorch/Tensorflow: There are several ML Frameworks written in Julia (as well as Julia bindings to ML Frameworks) the biggest Julia native one is likely Flux.jl

Regarding HF Transformers a quick Google points to https://github.com/chengchingwen/Transformers.jl but I have not had any personal experience with.

All of this is build by the community and your mileage may vary.

In my rather biased opinion the strengths of Julia are that the various ML libraries can share implementations, e.g. Pytorch and Tensorflow contain separate Numpy derivatives. One could say that you can write an ML framework in Julia, instead of writting a DSL in Python as part of your C++ ML library. As an example Julia has a GPU compiler so you can write your own layer directly in Julia and integrate it into your pipeline.
vchuravy
·4 tahun yang lalu·discuss
Take a look at `juliaup`. It's allows you to manage multiple Julia versions and makes you independent of the distribution.
vchuravy
·4 tahun yang lalu·discuss
I did the manual setup the other day since I wanted to try using my steam deck as a Road-Warrior build server.

The whole systemd-sysext seems like a good way to make that happen.
vchuravy
·4 tahun yang lalu·discuss
> A better calculator language

Especially with reactive programming as an ask there, I would recommend Julia with Pluto.jl (Pluto is a reactive notebook).

> A really dynamically-typed language

Julia ;) It is really dynamic, has meta-programming (macros + staged functions), solid semantics around eval/invokelatest that still allow for optimizations and you can add types at runtime (not modify them though).
vchuravy
·4 tahun yang lalu·discuss
Yes because Microsoft got a special license from Apple that allows for the virtualization of Mac OS on non Apple hardware...

The rest of us is still running on racks of Mac Minis