Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
mratsim
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
46 ms
·
481.
▲
by
mratsim
7y ago
As soon as you deal with env variables, need to support zsh and various shells, it quickly devolves into a hot mess.
482.
▲
by
mratsim
7y ago
So the software is improving by leaps and bounds but where is the hardware? OpenCL --> deprecated Cuda --> No Nvidia GPU ROCm/HIP: does it work on Mac or are you strong-armed into using Apple Metal? Metal --> I couldn't f
483.
▲
by
mratsim
7y ago
OpenCL? Cuda? Please tell me how I do proper GPU compute on a Mac.
484.
▲
by
mratsim
7y ago
Haskell avoids state. When I say state I meant "shared state" is the bane of multithreading. Amdahl's law show that if 95% of your code is parallel you limit your speedup to 20x even with thousands of cores, any shared state
485.
▲
by
mratsim
7y ago
OpenMP does not handle nested parallelism. Compute-bound parallelism is not always data parallelism, for example a tree search algorithm would need to spawn/async on each tree nodes.
486.
▲
by
mratsim
7y ago
There is a growing community of game developers using Nim. But Nim doesn't have a single GC, it has multiple and the default one can be compiled with real-time latency constraints so that you can use to make sure that you don't st
487.
▲
by
mratsim
7y ago
Nim dev here. If you are talking about async/await: - for concurrency it has been in the standard library for a couple of years. Also you can implement it as a library without compiler support. - for parallelism, Rust is in advance. Ni
488.
▲
by
mratsim
7y ago
await allows to write concurrent (for IO) or parallel (for CPU) code like it was serial. The issue it solves is programmer having trouble executing parallel code in their head, and when relationship became intricate (a computation graph) th
489.
▲
by
mratsim
7y ago
I know Pythran from the Julia challenge [1] but you should link to some docs / examples / tutorials in this thread because the release notes doesn't do justice of what Pythran can do. [1] https://github.com/Si
490.
▲
by
mratsim
7y ago
If in-between the start and the end, I went up to 8 accumulators and in files in the same folder I have the same with SSE and AVX instructions. I actually wanted to know exactly what ffast-math did, down to the codegen (so you have assembly
491.
▲
by
mratsim
7y ago
Yes exactly. Usually you can extract 2x to 4x instruction level parallelism on simple add instructions [1] vs [2] For fused-multiply-add even though the latency is higher the instruction is also slower so its the same. BLIS, OpenBLAS and my
492.
▲
by
mratsim
7y ago
ffast-math is not needed when you unroll manually and write your own accumulators. See my benchmarks [1] with fast-math in the middle and the generated assembly comparison at the bottom. The base language is Nim but pure C code should gene
493.
▲
by
mratsim
7y ago
If you are interested on the exact same topics (matrix multiplication parallelization) here are other step by step tutorials I used: - UlmBLAS [1], for a HPC course in 14 steps - BlisLab [2], make sure to checkout the tutorial.pdf. It gives
494.
▲
by
mratsim
7y ago
I have a hard time imagining the conversation with directors. "So I am currently evaluating the NortonLifeLock solution", "the what?"
495.
▲
by
mratsim
7y ago
I am trying to improve Nim data science ecosystem with https://github.com/mratsim/Arraymancer . I think today the best way to try Nim is for slow Python utilities vi nimpy: https://github.com/yglukhov&#x
496.
▲
by
mratsim
7y ago
It's fast, even when you use generics or metaprogramming. I have a couple of 10k+ LoC codebases.
497.
▲
by
mratsim
7y ago
As someone who also wrote my own deep learning library from scratch in a less-known language (Nim: https://github.com/mratsim/Arraymancer ), I must say this looks very nice. I especially like the syntax for declaring ne
498.
▲
by
mratsim
7y ago
I think Oberon doesn't have the community to thrive though. A language nowadays is much more than the core, it's also all the libraries, tooling and tutorials around it. That said, Oberon probably makes a very fine teaching langua
499.
▲
by
mratsim
7y ago
FMA is not always faster, it has a high latency: 5-6 cycles depending on the CPU while Add and MUL have very low-latency. This means that to fully utilizes FMA you need to unroll a loop more. Sometimes yyou just can't, and the other ti
500.
▲
by
mratsim
7y ago
RemoteML for data scinetists? Never tried, but I saw some offers here and there: https://remoteml.com/
501.
▲
by
mratsim
7y ago
Console developers would like to have a word with you.
502.
▲
by
mratsim
7y ago
That seemed like a lot of content, kudos.
503.
▲
by
mratsim
7y ago
ML -> OCaml and friends DL -> Download CV -> Resume
504.
▲
by
mratsim
7y ago
"A lack of planning on your end does not make it an ermergency on mine"
505.
▲
by
mratsim
7y ago
So you're working on both Halide and Taichi?
506.
▲
by
mratsim
7y ago
First they came for the Communists And I did not speak out Because I was not a Communist Then they came for the Socialists And I did not speak out Because I was not a Socialist Then they came for the trade unionists And I did not speak out
507.
▲
by
mratsim
7y ago
More power to Google/Apple
508.
▲
by
mratsim
7y ago
Surveillance by which country?
509.
▲
by
mratsim
7y ago
I don't know about Crystal but Nim GC is optional and even on a per-type basis: Use plain object and you are on the stack Use ptr object and you can use any allocator you want (Nim's default, malloc/free or jemalloc, mimalloc
510.
▲
by
mratsim
7y ago
I didn't try Crystal, but Nim is definitely on par with C. Actually you can use just plain (stack) objects and ptr object and you have no GC involved. Pass the flag -d:useMalloc (or just call your preferred allocator) and you have the
More ›