“Use-faced” computing: any computing that needs to happen in the tight loop of users interacting with each other or themselves. By this definition, most business insight generations, log processing, server health stats, data reprocessing for cold storage, automated trading, and automatic surveillance analysis are not user-faced computing. Conversely, when you send a message to another user, every…
With broader access to Llama, Alpaca, ChatGLM, and Dolly available on ordinary consumer-level hardware, we have entered a new phase where every technology-literate person can access GPT-3 level perplexity language models, which also inherit all the shortcomings of GPT-3 level models. These models hallucinate a lot, lack the knowledge of their more parameter-heavy counterparts, and are not nearly…
Every year, we have a new iPhone that claims to be faster and better in every way. And yes, these new computer vision models and new image sensors can exercise the phone as hard as they can. However, you could already take good pictures on an iPhone 10 years ago. These are incremental improvements. These incremental asks only deserve incremental improvements. Once in a few years, there are…
Reinforcement learning algorithms are ridiculously fragile. Older deep Q-learning algorithms may or may not train just with a different seed. Newer algorithms such as PPO and SAC are much more stable. Well-configured ones can train on a wide range of tasks with same / similar hyper-parameters. Because of that, these algorithms are now used more and more in real-world settings, rather than just a…
Back in late 2012, it was not nearly as obvious as now how long the deep learning AI renaissance was going to last. Alex Krizhevsky has been working on cuda-convnet from code.google.com for over a year, and only then, people started to download the code and to reproduce “CIFAR-10 under 30-minute” with their own GPUs. History can take many different paths at that point. If Alex & Hinton’s startup…
I did the Underactuated Robotics course at the beginning of this year (for anyone hasn’t, highly recommended! https://underactuated.mit.edu/ ). One thing interesting to watch is to see how Russ opened the notebook, did the computation instanously, and then spent a few seconds to a minute to generate the animated illustrations. If you previously Googled about how to show animations in a Jupyter…
Once for a while, we asked questions like: what can we do with more computations? When we asked that question in 2010, CUDA came along and Jesen Huang gifted everyone under the sun a GTX 980 or GTX Titan in search of problems beyond graphics that these wonderful computation workhorses can help. Then suddenly, we found out that we can not only solve simulation problems (3D graphics, physics…
There are three things in the past decade that I am not only wrong once about, but actively being wrong while the situation is evolving. Introspecting how that happened would serve as a useful guide for the future. Cryptocurrencies I’ve been exposed to cryptocurrencies, particularly Bitcoin pretty early on, somewhere around 2009 on Hacker News. I’ve run the software at that time (weirdly, on a…
After Elon’s announcement of the Tesla Bot [1], many people mocked the silly on-stage presentation and joked about the forever Level-5 Tesla Autopilot. The last time when humanoid robots caught my eye was the Honda Asimo, when I was a kid. I saved money to buy Robosapien the toy because that was the only bipedal humanoid robot toy available. A decade passed, and the world has given us videos such…
My first time going skiing was in my 20s. The software engineering job was paying me well at that time already. Why not just hire a private trainer for my ski lesson, I was thinking. Afterall, more money spent and a more focused time from the trainer ought to produce better outcomes, right? I definitely enjoyed the lesson for the first two days, but I cannot ski. The trainer was fun, and we did…
This series of essays explores how cryptocurrencies, despite the frauds and scams in the system, can possibly go beyond the speculative asset category. Rather than investigating the underlying utility value for a cryptocurrency system, this series will focus on power interplays between people, and how that can draw a narrow scenario in which cryptocurrencies become mainstream. When reading…
One thing in the past decade the academics failed to appreciate is the power of believing. In democracies like the United States, if the power of believing can be maintained long enough, a supporting structure from both the political and economic side will emerge. In every aspect, cryptocurrencies are moving along the right direction to establish themselves with such supporting structure despite…
I am a mediocre marathon runner that hasn’t done any long-distances since Covid-19. But out of serendipity today, I was thinking about marathon and the interesting choices you would make during it. Flat road marathon with support stations every half a mile is … bland. I probably have done that only twice, one in Maui, one in Denver. The only interesting bits for these two are hot temperature or…
前段时间人人影视组因为侵犯版权问题被调查了。国内引起了对知识产权保护的大讨论。在一定的时期和特定的领域,知识产权有着积极的意义。但是,知识产权制度本身并不是真理,它只是人为的一种创造。 知识产权的本质是将知识,这一属于人类共有资源(Public common)的事物通过国家机器,在有限的时间内赋予其完整的私有产权,将其私有化。定义私有产权的四种性质:即可使用性(right to use),可转移性(right to transfer),排他性(right to exclude)和可销毁性(right to destory)对于知识产权都是适用的。 需要注意的一点是,将知识产权化私有这一行为本身会将知识从人类公有资源中排除。长此以往,人类共享的公有资源将会减少消失。因此,知识产权均有时间限制。比如专利有20年的有效期,而著作权在作者死后50年后失效(美国是70年)。…
For many machine learning practitioners, training loop is a universally agreed upon concept as demonstrated by numerous documentations, conference papers to use the word without any reference. It would be a helpful concept for many beginners to get familiar with before diving into the rabbit holes of many deep learning tools. The field of machine learning becomes vast, diverse and ever-more open…
I started to work on a new data science related project last year. Our initial setup was fairly traditional: it is Python-centric, with Anaconda for dependency management and environment setup. Anaconda is interesting. It is probably useful if you have a ton of dependencies and the system tries really hard to figure out the package compatibilities with each other based on their claims (version…
From the onset of implementing libnnc , it meant to be a common ground for higher-level language bindings beyond Python. The underlying architecture has been stable for a year or so, and I have been using it for some personal projects for a while. But the raw C interface is not the easiest to use, it is the time to implement some high-level language bindings for that library. The default…
For the past a few months, I’ve worked on Dflat , among many other things . The theme is to explore a workflow using Bazel as the build and deployment system, and Swift as the main language for data exploration, modeling, and production system. Dflat appears to be an outlier for this theme. I simply have the urge to implement what I considered to be the one-true-way of doing structured data…
I plan to write a series of articles to discuss some simple but not embarrassingly parallel algorithms. These will have practical usages and would most likely be on many-core CPUs or CUDA GPUs. Today’s is the first one to discuss a parallel algorithm implementation for CSV file parser. In the old days, when our spin disk speed maxed out at 100MiB/s, we only have two choices: either we don’t care…
In the past a few days, I’ve been experimenting with Bazel as a library distribution mechanism for ccv . I am pretty familiar with hermetic build systems at this point. My main knowledge comes from Buck dating 8 years back. At that time, it never occurred to me such a build system could eventually be a library distribution mechanism. During the same 8 years, NPM has taken over the world. New…
During the past few years, I’ve been involved in migrations from Xcode workspace based build system to Buck twice (Facebook and Snapchat). Both of these experiences took talented engineers multi-months work with many fixes upstreamed to get it work. Recently, I’ve been helping another company to migrate their iOS project from Xcode workspace based build system to Bazel. This experience may be…
At times, a year can be a day and a day can be a year. After the past several years since January 2020, it feels far-reaching nowadays to preach how awesome the human world is. But the progress cannot be stalled, the problem cannot solve itself with inaction. So, good people continue to publish great works. The recent GPT-3 model shows some interesting abstract reasoning capability. While I still…
I had some of the fondest memories for Visual Basic in 1998. In January, I enlisted myself to a project to revive the fun part of programming . There are certain regrets in today’s software engineering culture where we put heavy facades to enforce disciplines. Fun was lost as the result. With Visual Basic, you can create a GUI and start to hack a program in no time. You write directives and the…
There are some articles referring to the past 20 years as the modern Gilded Age. While Gilded Age is an American specific reference, it nevertheless carries a certain western culture mark in the early 20th century. However, the characterization of the Gilded Age, particularly railroads v.s. the internet, would come across to me as lazy. The fanatic obsession with literal bits over atoms comparison…
Yesterday, I was listening to an interview by Oxide Computer people with Jonathan Blow on my way back to San Francisco. There were usual complaints about how today’s programmers buried themselves into the pile of abstractions. As a game programmer Jonathan Blow himself, they also discussed some fond memories about programming basic games in his childhood. All that kept me thinking, how…
The past 3 months ought to be the best 3 months for television shows. As a prolific TV viewer, the shows from the past 3 months are all impressive and well-executed. Some of these due to better technologies. Some of these we can probably thank to the investment coming from the streaming war. The pouring of money and talents certainly worked. On top of all these, one of the most interesting turns…
Grand Central Dispatch is the de-facto task-based parallelism / scheduling system on macOS / iOS. It has been open-sourced as libdispatch and ported to many platforms including Linux and FreeBSD. libdispatch has been designed to work closely with the Clang extension: Blocks . Blocks is a simple, yet powerful function closure implementation that can implicitly capture variables to facilitate the…
I’ve discussed a stackful coroutine implementation to coordinate CUDA stream last year . That was an implementation based on swapcontext / makecontext APIs. Increasingly, when I thought about porting nnc over to WASM, it becomes problematic because these APIs are more or less deprecated. Popular libc implementations such as musl don’t have implementation of these methods. After the article , it…
To train large deep neural network, you need a lot of GPU and a lot of memory. That is why a Titan RTX card cost more than 3 times of a RTX 2080 Ti with just a bit more tensor cores. It has 24GiB memory and that makes a lot of models much easier to train. More memory also means bigger batch size. Many GPU kernels run faster with larger batch size. If somehow we can reduce memory footprint at…
War starts when people fail to communicate with each other. The current U.S. and China dispute is so complex and overreaching, any rational discussions online can devolve into flame wars. There are so many topics, making the multi-variable optimizations difficult. Overlaying all this with a gloomy long-term implications of technology, it is far easier to just pick a side and rooting for the red /…
When programming with CUDA, there are several ways to exploit concurrency for CUDA kernel launches. As explained in some of these slides , you can either: Create thread corresponding each execution flow, execute serially on stream per thread, coordinate with either cudaEventSynchronize or cudaStreamSynchronize ; Carefully setup CUDA events and streams such that the correct execution flow will…
NNC is a tiny deep learning framework I was working on for the past three years. Before you close the page on yet another deep learning framework . let me quickly summarize why: starting from scratch enables me to toy with some new ideas on the implementation, and some of these ideas, after implemented, has some interesting properties. After three years, and given the fresh new takes on both APIs…
Decades have passed before we had a yet high quality consumer software. It is now taken that software supposes to be crashy, laggy and barely functional. Why and how we get here? When the question is asked, many people felt the nostalgia, where the software is simpler, and people crafts their cathedral. They often overlooked the fact that the software we built today, was many orders of magnitudes…
Birthdays are often joyless for me. I’ve yet to find this as an excuse to celebrate for. But the clock is ticking, and every time, it kicks me hard on the back this day of the year. It is always a thing for me to accomplish something, to set a goal, and work towards it. But looking back, I’ve done nothing tangible, not even to mention worthy causes. When I die, I die.…
上周四晚上,和同事们去特Sketchy的一Neighborhood吃饭。洗手间在楼上,酒足饭饱之后去,发现小便池上面一排「THIS PLACE IS HAUNTED」的警告。匆忙跑下来,接到了姥姥过世的噩耗。不到30个小时之后,就回到了家乡,老房子的楼下。 当周遭都回到了十几年前的模样,看世界的眼睛才会变得光怪陆离。桌上的小泥人在夜里站起来自己活动脚肢。七月十五深夜的马路边,会有穿着白裙子的长头发坐着哭泣。从古墓里跑出来的僵尸还在被解放军追捕。半夜河边的桥上,三五个少年在无声地嬉戏打闹。而这一切,在脚边的公鸡打鸣破晓之后都会不见啦。…
去年的时候提起Burning Man,有人告诉我:「It is a very spiritual experience.」可是,在沙漠里面一堆人唱歌跳舞又有什么可稀奇的呢。 可是当自己真的到一个没什么人的地方,每天只是跑步,吃饭,睡觉之后,才觉得,真的很Spiritual。 也会担心回家之后成堆的邮件和事情,也会担心赶不上进度。可是在那几天,只有南半球的星星在头顶,太阳和月亮照着前进的道路。自己和自己说话,想着过去的往事,想着未来,想着五年之后,十年之后。想到回到加州之后,夏天就结束了。 自己总是不够努力,懒惰。有事情做的时候不努力向上,没事情做的时候又懈怠。这样的人格硬伤,和不会法语放在一起,真是残疾。 人生的问题,总结下来,无非就是,从约翰内斯堡回来的航班要十六个小时,但是,但是为什么南非航空的航班会有爱情公寓看啊!
来耶路撒冷之前,大家都告诉我,这是一个多么特别的地方。总归是半信半疑。来了也就打算去Old City照照破石头,特游客地发发Facebook。谁想到雇了一个这么Hippie的导游,见面就拉着我聊,来来来,我们从Ottoman Empire时候的Zionism谈起!喂!见面就聊这么沉重的话题,我们还能不能好好拍照看石头了! 穿过巴勒斯坦区,路过以色列的旗帜和梵蒂冈的旗帜,被边警拦着非穆斯林勿入。只能远远地望着Haram al-Sharif,竟然没有缘分见到这么一块石头。 周四,在Western Wall边,一群十三岁少年的Synagogues。小摊小贩叫卖的画里,Dome of the Rock被幻想中的the Third Temple给取代了。这时候,望着墙后面的穹顶再拍照是多么的不合适啊!一个巴勒斯坦的老头走过来,向我们诉说自己被关押了两年半的遭遇。…