Super Computing with Mini ITX Cluster

[Colin Alston] was able to snag a handful of Mini ITX motherboards for cheap and built a mini super computer he calls TinyJaguar. Named partly after the AMD Sempron 2650 APU, the TinyJaguar boasts four, yes that’s four MSI AM1I Mini-ITX motherboards, each with 4GB of DDR memory.

A Raspberry Pi with custom software manages the cluster, and along with some TTL and relays, controls the power to the four nodes. The mini super computer resides in a custom acrylic case held together by an array of 3D printed parts and fasteners.There’s even a rack-like faceplate near the bottom to host the RPi, an Ethernet switch, an array of status LEDs, and the two buttons.

With 16 total cores of computing power (including GPU), the TinyJaguar is quite capable of doing some pretty cool stuff such as running Jupyter notebook with IPyParallel. [Colin] ran into some issues getting the GPU to behave with PyOpenCL. It took a bit of pain and time, but in the end he was able to get the GPUs up, and wrote a small message passing program to show two of the cores were up and working together.

Be sure to check out [Colin’s] super computer project page, specifically the ten project logs that walk through everything that went into this build. He also posted his code if you want to take a look under the hood.

How Not To Build A CPU Hand Warmer

Winter is coming, along with mittens, cold hands, snow, and jackets. Now that we’re all carrying around lithium batteries in our pocket, wouldn’t it be a great idea to build an electronic hand warmer? That’s what [GreatScott!] thought. To build his electronic hand warmer, he turned to the most effective and efficient way to turn electricity into heat: a ten-year-old AMD CPU.

Building an electronic hand warmer is exceptionally simple. All you need is a resistive heating element (like a resistor), a means to limit current (like a resistor), and a power supply (like a USB power bank). Connect these things together and you have a hand warmer that is either zero percent or one hundred percent efficient. We haven’t figured that last part out yet.

Because more power and more retro is more betterer, [GreatScott] pulled an AMD Sempron out of an old computer. Finding and reading data sheets is for wimps, apparently, so [GreatScott] just poked some pins with a variable power supply until the CPU was drawing about 500mA at 5V.

The video continues with some Arduino-based temperature measurement, finding some new pins to plug the power leads into, and securing all the wires on this heating element with hot glue. For anyone in the comments ready to say, ‘not a hack’, we assure you, this qualifies.

With the naive method of building a CPU hand warmer out of the way, here’s the pros and cons of this project, and how it can be made better. First off, using an old AMD processor was a great idea. These things are firestarters, and even though this processor preceded the 100+ W TDP AMD CPUs, it should work well enough.

That said, this is not how you waste power in a CPU. Ideally, the processor should do some work, with more active gates resulting in higher power consumption. If this were an exceptionally old processor, a good, simple option would be freerunning the chip, or having the CPU count up through its address space. This can be done by tying address lines low or high, depending on the chip. That’ll waste a significant amount of power. Randomly poking pins hoping for the right power consumption is not the way to get the most heat out of this CPU.

Of course, the above paragraph is just theory. The eating is in the pudding, or some other disfigured colloquialism, so here’s a quad-core 386 coffee warmer. This project from [magnustron] uses four 80386 CPUs powered via USB to make a nice desktop hotplate for your cuppa. Of course being powered by USB means there’s only 500mA to go around, and the ΔT is comparable to [GreatScott]’s AMD and hot glue hand warmer. Thus we get to the crux of the issue: 5V and 500mA isn’t very hot. Until cheap USB-C power banks, with ten or twelve Watts flood in from China, the idea of a USB powered heater is a fool’s errand. It does make for some great AMD firestarter jokes, though, so we have to give [GreatScott] credit for that.

Continue reading “How Not To Build A CPU Hand Warmer”

New Part Day: A Truly Secure Workstation

There is a chain of trust in every modern computing device that starts with the code you write yourself, and extends backwards through whatever frameworks you’re using, whatever OS you’re using, whatever drivers you’re using, and ultimately whatever BIOS, UEFI, Secure Boot, or firmware you’re running. With an Intel processor, this chain of trust extends to the Intel Management Engine, a system running independent of the CPU that has access to the network, USB ports, and everything else in the computer.

Needless to say, this chain of trust is untenable. Any attempt to audit every line of code running in a computer will only be met with frustration. There is no modern Intel-based computer that is completely open source, and no computer that can be verified as secure. AMD is just as bad, and recent attempts to create an open computing platform have met with frustration. [Bunnie]’s Novena laptop gets close, but like any engineering task, designing the Novena was an exercise in compromise. You can get around modern BIOSes, coreboot still uses binary blobs, and Libreboot will not be discussed on Hackaday for the time being. There is no modern, completely open, completely secure computing platform. They’re all untrustworthy.

The Talos Secure Workstation, from Raptor Engineering, an an upcoming  Crowd Supply campaign is the answer to the untrustworthiness of modern computing. The Talos is an effort to create the world’s first libre workstation. It’s an ATX-compatible motherboard that is fully auditable, from schematics to firmware, without any binary blobs.

Continue reading “New Part Day: A Truly Secure Workstation”

Echo of the Bunnymen: How AMD Won, Then Lost

In 2003, nothing could stop AMD. This was a company that moved from a semiconductor company based around second-sourcing Intel designs in the 1980s to a Fortune 500 company a mere fifteen years later. AMD was on fire, and with almost a 50% market share of desktop CPUs, it was a true challenger to Intel’s throne.

An AMD 8080A. source
An AMD 8080A. source.

AMD began its corporate history like dozens of other semiconductor companies: second sourcing dozens of other designs from dozens of other companies. The first AMD chip, sold in 1970, was just a four-bit shift register. From there, AMD began producing 1024-bit static RAMs, ever more complex integrated circuits, and in 1974 released the Am9080, a reverse-engineered version of the Intel 8080.

AMD had the beginnings of something great. The company was founded by [Jerry Sanders], electrical engineer at Fairchild Semiconductor. At the time [Sanders] left Fairchild in 1969,  [Gordon Moore] and [Robert Noyce], also former Fairchild employees, had formed Intel a year before.

While AMD and Intel shared a common heritage, history bears that only one company would become the king of semiconductors. Twenty years after these companies were founded they would find themselves in a bitter rivalry, and thirty years after their beginnings, they would each see their fortunes change. For a short time, AMD would overtake Intel as the king of CPUs, only to stumble again and again to a market share of ten to twenty percent. It only takes excellent engineering to succeed, but how did AMD fail? The answer is Intel. Through illegal practices and ethically questionable engineering decisions, Intel would succeed to be the current leader of the semiconductor world.

Continue reading “Echo of the Bunnymen: How AMD Won, Then Lost”

Gizmo Board, a tiny x86 dev board


With the Raspberry Pi and sever other ARM dev boards seeing their time in the lime light, it’s no surprise other chip manufacturers would want to get in on the action. AMD is releasing a very tiny x86 dev board called the Gizmo, a four-inch square board that shrinks a desktop computer down to the palm of your hand.

The Gizmo is powered by a dual-core x86 Brazos CPU running at 1 GHz with an included Radeon HD 6250 graphics engine. Also on the board is 1GB of DDR3 RAM, a SATA, Ethernet, USB, VGA, Audio, PCI and PCIe ports, and a ton of GPIO pins that include ADCs and DACs. All this in a four-inch square package that boasts about twice the performance of a Raspberry Pi.

While the price of the Gizmo – $200 for an explorer kit – will probably preclude it from being as popular as a Raspberry Pi or other ARM board, sometimes you just need an x86 platform to do the job. With the powerful graphics potential of the Gizmo, we could easily see this board being used in a few computer vision or autonomous robot builds.

STM32 driving a PCIe video card

[Gpuhackr] chose his username to explain exactly how he spends his time. For instance, here he’s using an STM32 Discovery board to drive an AMD Radeon HD 2400 graphics card. The ARM microcontroller isn’t actually using the PCIe interface on the card. Instead, [Gpuhackr] has patched into the debugging interface built into the card itself. This isn’t quite as straight forward as it sounds, but if you do the wiring carefully it’s a pretty intersting way to connect an ARM to an LCD monitor.

This project would be almost impossible if it weren’t for the open source code which AMD has released. This lets him implement the card’s 3D rendering features. The demo directly programs the UVD Xtensa CPU which is on the video card. It draws a cube with color gradients on each side. The cube spins while the debug information is overlaid on the screen. In this case the ARM chip/board is really being used as a programmer to upload some custom firmware. But we think a real code-ninja could implement a communications protocol to open up a simple way to drive the card in real-time.

[Thanks uMinded]

Binary division when your processor lacks hardware division

[Hamster] wanted to take a look at division operations when the chip you’re using doesn’t have a divide instruction. He makes the point that the divide instruction takes a lot of space on the die, and that’s why it’s sometimes excluded from a chip’s instruction set. For instance, he tells us the ARM processor used on the Raspberry Pi doesn’t have a divide instruction.

Without hardware division you’re left to implement a binary division algorithm. Eventually [Hamster] plans to do this in an FPGA, but started researching the project by comparing division algorithms in C on an AMD processor.

His test uses all 16-bit possibilities for dividend and divisor. He was shocked to find that binary division doesn’t take much longer than using the hardware instruction for the same tests. A bit of poking around in his code and he manages to beat the AMD hardware divide instruciton by 175%. When testing with an Intel chip the hardware beats his code by about 62%.

He’s got some theories on why he’s seeing these performance differences which we’ll let you check out on your own.