These two are not the same thing.
256 karma · joined October 12, 2019
These two are not the same thing.
That flag changes the behavior of integer overflow from trapping to “modulo 2 arithmetic”.
If you want to change the behavior of integer overflow in Rust to “always assume it cannot happen”, you need to “hack” the compiler AFAIK.
If you believe this is incorrect, provide the flag that proves that (hint: such a flag makes safe Rust unsound and it therefore does not exist).
While on this microbenchmark you see a 3x slowdown with the LLVM backend, on large Rust projects like servo, Firefox, the rust compiler, etc. the slowdown is not even measurable.
Also, Rust provides you with unsafe intrinsics to opt-out of trapping in the particular line of code in which it causes an issue.
You don’t really hear much about Bosch because it’s not on the stock market. But they have a couple of huge research centers worldwide and their tech is used by every auto manufacturer in the industry.
The assumption that people living there are intolerant of babies and families is false.
A unit test that tests code that’s cold in practice would make it look like hot code, and be counter productive.
I’ve never used ATS to do what the GP is suggesting of incrementally wrapping C with proofs, but I can’t imagine this being simpler than just rewriting the C in Rust. You wouldn’t get the same proofs, but you would get memory and thread safety, which for many apps would be an incremental improvement.
I haven’t taught ATS, but I found it harder to learn than Idris, and I can’t imagine C programmers which have a hard time with Rust learning it quicker than they would learn Idris or Rust.
Some of the ideas developed in these frameworks percolate down to the PLs that use them and to the libraries they use, which benefits everyone. These frameworks also test new language features.
Rust, C++ just said “hi” to you again, it’s on. Time to make Actix fast.
The irony.
Are there any blogposts about this?
This is easy to do when you don’t have to use any standard benchmarks (MLPerf) and do not allow anybody to verify any claims.
Until then, it’s vapor ware. I’d refer to this comment https://news.ycombinator.com/item?id=21530810
GraphCore’s claims are just that, claims. Some of these have been debunked already by people with access to the hardware (eg promised 10x speed ups were more like 1x).
I think they would be expending the money to grow their CPU team. The ARM engineers would be working on making Nvidia CPUs better, neglecting “public” ARM cores.
This would hurt small fish, but Apple, Amazon, Google, Tesla, Facebook, etc already have their own in house ARM teams.
There is a lot of research about doing databases on GPUs, and Apache Spark runs on GPUs today, with much higher performance than on CPUs.
To do that, it would essentially need to literally prove that the C++ code is thread and memory safe, which is an open research problem at Best, and probably impossible since it requires solving the halting problem.
If it can do that, then the actual binding generation would be the most uninteresting part of this work.
Without an error bound, ML can’t be in charge of anything that could put human lives at risk.
This is also why I don’t understand all the hype about FSD / L5 autonomous driving. We don’t even know yet if such error bounds even exist, so we don’t even know if machine learning is even the right tool for FSD yet. All certification entities for control systems that put human lives at risk in aviation, automotive, etc. require those error bounds. So it actually doesn’t really matter if Tesla comes up with a “maybe L5” system, without right error bounds, their cars won’t be certified as L5 and drivers will need to keep hands on the steering wheel.
In my last 3 professional C++ projects I’ve actually used Rust’s cargo tool as my build tool for C++ code. Infinitely better than CMake, plus you use Rust as your scripting language for your build system, which has great libraries for it like the cc crate, and pretty much a crate for whatever it is you want to build (eg ispc? no problem).