DLPack is the standard in-memory data format that facilitates zero-cost tensor transfer across major Deep Learning frameworks (PyTorch, TensorFlow and TVM) and the supported Python Array processing frameworks such as Numpy, CuPy. The dlpackrs provides a safe idiomatic Rust binding where Rust ndarray and tensor frameworks can use it to gain the same kind of … Continue reading Announcement 📢 Releasing dlpackrs
Author: Ehsan
Announcement 📢 Releasing smartalloc
If you happen to write unsafe code in Rust where normal static checks are not available and want better UX for detecting memory issues along side using various sanitizers, checkout my new crate smartalloc which provides idiomatic Rust binding for the original C version here. Beside the reason in README, note that MIRI can't be … Continue reading Announcement 📢 Releasing smartalloc
The most influential book I have ever read
Summary The book Dopamine Nation starts with the idea that studying addictions and addicts teaches us about the boundaries of the human behaviours i.e. ourselves. The author who is a well-known psychiatrist, goes on describing various addiction cases who were her patients and interestingly about her case too. The book taught me about the pleasure-pain … Continue reading The most influential book I have ever read
How to have an honest self-evaluation
Intro I've been frustrated many times when one's capabilities don't match with what's been advertised or promised or promoted. Competing for job positions in the Linkedin era have made it worse. This behavior is mostly visible in the Data Science field where it suffers from bloated and exaggerated skills set. My views on Data Science … Continue reading How to have an honest self-evaluation
Collaboration era: C/C++ “+” Rust
Previously, I wrote a post about C/C++ vs. Rust. Despite all the goodies and features in Rust, when it comes to my line of work and interest i.e. ML/DL and Systems, Rust hasn't been able to deliver what I hoped it would. There's just too much work being done at the language level itself and … Continue reading Collaboration era: C/C++ “+” Rust
Announcement 📢 Create your own programming language with Rust
After almost a year from my last blog post, in this short post I'm very happy to announce that I'm writing a free online book where early chapters are available now. I've explained my motivations and goals in the introduction. The accompanying codes are also available on my GitHub. Feedbacks are welcome and happy learning. … Continue reading Announcement 📢 Create your own programming language with Rust
Rust std study series: Pin
This time we dive into std::pin which has a dense documentation. Types that pin data to its location in memory. It is sometimes useful to have objects that are guaranteed to not move, in the sense that their placement in memory does not change, and can thus be relied upon. A prime example of such … Continue reading Rust std study series: Pin
C/C++ vs. Rust
The previous write up seemed to be not sufficient, so I decided to only make this post about resource gathering of articles/talks about C/C++ fundamental issue and Rust and make it easier to follow. Microsoft Security Response Center.C/C++ are impossible to get right.Undefined Behavior pits falls in C abstract machine by John Regehr series of … Continue reading C/C++ vs. Rust
Rust std study series: alloc
Let's get deep into std::alloc! Memory allocator 101 The very basic need for any program to compile and execute is having access to either physical memory or virtual memory. An allocator is responsible for providing such an access. You can think of an allocator as a service, taking some sort of requests and either giving … Continue reading Rust std study series: alloc
Rust std study series: Interior mutability
Continuing the standard library study, it's time for Cell<T>! Rust compiler enforces multiple reads access and a single write access mutually exclusive, i.e. either multiple shared references & or one and only one mutable reference & mut. So essentially, Rust prevents the evil of aliasing and mutation between multiple threads. Cell<T> is a sharable mutable … Continue reading Rust std study series: Interior mutability
State of Machine Learning in Rust
Every once in a while this topic comes up on a social media or Rust user channel. I'd like to describe briefly the way I see where things are going by a little bit of history as well as some information about existing flux of Machine Learning/Deep Learning frameworks and major recent trends. Brief history … Continue reading State of Machine Learning in Rust
Rust std study series: VecDeque
Continuing from Rust standard library study series, it's time for VecDeque<T>. Because of its similarity to Vec, there isn't much to say. A double-ended queue implemented with a growable ring buffer. The "default" usage of this type as a queue is to use push_back to add to the queue, and pop_front to remove from the … Continue reading Rust std study series: VecDeque
Rust std study series: LinkedList
Continuing from Rust standard library study series, it's time for LinkedList<T>. Note that implementation are taken from Rust stable v1.33.0. A doubly-linked list with owned nodes. The LinkedList allows pushing and popping elements at either end in constant time. Almost always it is better to use Vec or VecDeque instead of LinkedList. In general, array-based … Continue reading Rust std study series: LinkedList
Variance in Rust: An intuitive explanation
Recently I've made a presentation about subtyping and variance in Rust for our local Vancouver Rust meetup, but I still think intuition was rather lost in the formalism, so here's my shot at explaining it as intuitively as I can. For more succinct definitions, please checkout the presentation or the resources at the end. First, … Continue reading Variance in Rust: An intuitive explanation
Rust std study series: Vec
The upcoming series of blog posts will contain my study of Rust standard library. I've partially written some parts of the series in scattered places and want to gather them in one place for better and easier access. I intend to update whenever I discover something interesting/important to remember. I'm referring to implementations in Rust … Continue reading Rust std study series: Vec
Learn Rust through linalg
This series of posts is going to be a non-traditional intro to Rustlang, so buckle up! I will give more details when necessary. Codes are available in my github. Basic linear algebra such as vector inner product and General Matrix-Matrix (GEMM) product are at the heart of computer science so why not learning Rust by … Continue reading Learn Rust through linalg
NIPS, AI hype and the lost rigor
Warning: This post contains a mixture of excitements, frustrations and rants! Today, Machine Learning/Deep Learning people have been sharing their great excitements over Ali Rahimi's talk at NIPS (from min 57 onwards). Undoubtedly, it's a great talk and you should check it out if you care about fundamental issues and the lost rigor in Deep Learning … Continue reading NIPS, AI hype and the lost rigor
Overview of Andrew Ng’s deeplearning.ai courses
In this post, I'm going to briefly write about the recently launched Andrew Ng's coursera courses in Neural Network and Deep Learning that I just finished with certificates. I want to argue that there's merit in taking these courses even if you're already familiar with some good portion of the syllabi. First a short relevant … Continue reading Overview of Andrew Ng’s deeplearning.ai courses
What’s up with word embedding?
Word embedding is one of the interesting areas of research in Natural Language Processing. There are huge amount of materials with a lot of interesting ideas. I have been studying some of them lately and in this post, I'd like to create a brief account of the ideas I have found most interesting so far. … Continue reading What’s up with word embedding?
From Machine Learning to Formal Math and Type Theory
The idea of this post was sparkled from the new paper Developing Bug-Free Machine Learning Systems with Formal Mathematics. Meanwhile, I have had the idea of writing about what you're going to read for a long time and this paper happily forced me to do it finally! The first and final parts are about my journey and … Continue reading From Machine Learning to Formal Math and Type Theory