Background For quite some time I had been submitting tasks to LLMs via llama-cli (natively) or llama-server (API), both from the excellent llama.cpp project . On CPU-only llama-cli starts fast and can restart from a checkpoint which has already parsed all instructions, making it reasonably fast for repetitive tasks such as classifying patches to be backported. However, with my AMD MI50 GPUs , the…
I recently stumbled upon this llama.cpp fork which supports AMD Radeon Instinct MI50-32GB cards ("gfx906"). That made me discover this card, and notice that some of them were amazingly cheap, around $250 used. The 16GB variant is even cheaper, around $100. I had long been watching AI-capable hardware for quite a long time, thinking about various devices (Mac Ultra, AMD's AI-Max-395+, DGX Spark…
A well known story All those who run a small infrastructure at home know this problem. It's Monday morning, while drinking your first coffee you're checking your e-mails, you find that you received surprisingly few during the night, and that the last one was from 5 hours ago. Then this well-known feeling starts to build up: "what is it this time? FS full, unregistered from all mailing lists at…
In the previous synthetic comparison between ebtree and cebtree it was quite clear that performance varies quite a bit between key types, key distribution, lookup-to-update ratio, and tree type. While the initial utility was fine to get a rough performance estimate, it appeared important to measure the cost per operation (insert, lookup, delete). Also, the impact of the key distribution made me…
Background This is a follow up for the previous article on CEB trees . It documents a performance test that was run on both libraries while measuring the time spent in the different operations in order to compare how some operations behave on one of the other. This is mostly a copy of the performance test report stored in the tree here . Tests were run on a single core of an Intel Core i7-6700K…
Those who often hear me discuss about my week-end projects have been accustomed to hearing about deuterium fusion (that's for another post), laser engraving, and the compact version of the ebtrees, aka compact elastic binary trees, without knowing all the details. That's what we'll be discussing here. A long history Self-organizing trees It started very early during the development of ebtrees , in…
Background There are plenty of nice devices these days designed around ARMv8.2 SoCs such as RK3568 or variations around RK3588. Many of them have been using the HYM8563 I2C RTC chip for about a decade. This device is reasonably cheap, requires few components, consumes very little power and is long proven to work well. Despite its low price, entry-level devices are often lacking it and only have…
Baby steps are important Four years after I wrote about some improvements brought to my Eleksmaker laser engraver, I made quite a lot of progress on multiple fronts. Laser module I was regularly annoyed by the too irregular laser beam and finally acquired a NEJE A40640 model that's supposedly 15W optical, made of two diodes and that contains lenses offering a Fast Axis Correction (FAC) to reduce…
Background Two weeks ago, in early May, Tom Cubie of Radxa asked me if I would be interested in testing their new ROCK 5 ITX board. I've followed a little bit the development of this really nice board, and Tom probably valued some of my tests and comments during the ROCK 5B debug party. And he knows I'm not shy when I disagree with certain choices, and he confirmed he doesn't seek a complacent…
Optimizing the shelf life of battery-powered devices Background For a few years now I've been placing small lithium batteries in a lot of devices, including a digital camera, a multi-meter, an RC car remote controller, a table vacuum cleaner, a few UPS etc. Unexpectedly, one of the devices that required the most adjustments was the voltmeter: I carry it everywhere in my computer bag and don't use…
Background Back in April, the hardware news site cnx-software featured a very nice new small Linux board called Breadbee , that was designed and still being developed by one of the site's readers, Daniel Palmer (aka 'dgp'). The board has many unique particularities that appealed me: it is small, very small, about 3x3cm, barely larger than the Ethernet jack, because yes, at this size, it comes with…
Background After having successfully built a few tiny USB batteries in the past, I was always left with a bit of frustration about the difficulty to build them. My previous model has been working flawlessly for the last 2.5 years now despite the hackish way it was built, that's undeniably a success! Once I got my laser engraver and managed to create some quite fine PCBs , I thought it might be a…
After starting to use my laser engraver , I found a few points that really needed to be improved. [ Update-2024-07-30: new resolution and accuracy improvements described here: https://wtarreau.blogspot.com/2024/07/improving-laser-engravers-resolution.html ] Seeing under the piece First, when cutting thick material like wood or acrylic, you never know if the cut is finished or if another pass is…
Abstract I started making my own PCBs at the age of 10, using a pencil on PCB. 10 years later I bought a kit with an UV table, the ferro-chloric acid tank with bubbles and heating, and presensitized copper, but found it very difficult to use for occasional week-end projects and continued to work with the pencil. With SMDs becoming more and more common, pencil is difficult to use for precision…
It all started while following some links... I was having a look at a review for a new single board computer (I don't remember which one) with a link to the Banggood site, and in the suggestions I saw some inexpensive laser modules. Clicking on them by curiosity revealed this appealing laser engraver that made me wonder whether I'd really need it... It turns out that I've been imagining for a very…
Background Several years ago I was intrigued by a strange table at the Palais de la découverte in Paris, which was showing randomly moving lines supposed t be traces of particles falling on it. By then I found no explanation about it. Later I learned that this is called a cloud chamber, which is quite well explained here . These devices are not very hard to build and I happened to have all the…
Purpose After creating the 3rd version of my build farm I figured the cooling was not optimal due to the thermal tape having a non negligible resistance. I sketched an idea of a variation of the cooling system involving a thick aluminum thermal plate to conduct the heat to a large heatsink. The L-shaped aluminum stands would have to be turned : Realisation It took me a while to find the required…
Purpose I like to get up early to have more time to work and design in a quiet place. (Well, I have a joke that lazy people get up earlier to have more time to do nothing) . I noticed that in summer it's easy to wake up with the first sun rays, but in winter it's more difficult. And in order to optimize your sleep cycles you don't want to be woken up by a noisy alarm clock. So I've long wanted to…
[this is a follow-up to this article on version 2 of the build farm] Background The MiQi-based build farms had been running very well both at home and at work over the last 2 years. I noticed that some very large files in haproxy totally dominate the build time (notably cfgparse.c), and can keep a core busy from the beginning to the end of the build. It was a signal that this file needed to be…
[this is a follow-up to this article on version 1 of the build farm] Background The first version of my build farm was described here. A significant number of shortcomings surfaced : poor hardware build quality resulting in instabilities performance limited by the single channel DDR2 memory used difficult cooling difficulties holding the cards together no easy access to a console port for…
Context Being a developer and having built many thousands of Linux kernels over the last two decades, I can say that build time is something which really counts. I've always been interested in distributed build systems, I started to explore these possibilities in 1996 at the university... Nowadays hardware is much cheaper, there's a lot of choice, and lots of software possibilities as well,…
Goal A while ago I purchased a Linksys WRT1900ACS-v2 router to replace my aging 15-years firewall (still running kernel 2.4 on an old VIA Eden board!). This device is pretty nice, it's fully supported by Linux mainline, it offers multi-gigabit connectivity with a real CPU (Marvell Armada 385), has lots of RAM (512 MB) and storage (256 MB NAND), and dual-band WiFi. Yes I know, having NAND flash…
Context My digital camera ( Canon A2100 IS ) uses 2 AA cells as its power source, as can be seen on the photo below from the review site above : This was one of the reasons why I selected this model, because I didn't want to have to discover that the battery is depleted when I need it, and AA batteries are easy to find. I replaced the batteries long ago with NiMH rechargeable batteries, but the…
Context From time to time with a few friends we play with these RC cars but the problem is always the same : the transmitters require 4 AA-sized batteries. Since we have 4 cars, it means we need to find 16 charged AA batteries before going outside. It often takes much more time to find and test them as the time required to charge the cars themselves! This made me wonder if it would be possible to…
What's the purpose ? Every developer even remotely interested in performance regularly needs multiple physical machines to test the effects of various optimizations. I'm no exception to this, on my desk lie a number of fanless Atom and ARM boards serving as load generators and web servers when I need to validate certain points regarding HAProxy. The problem is that you don't always have enough…