Musings from kb8ojh.net

Wed, 23 Apr 2014

My parallella is here!

by on :

I was a backer of the AdaptevaParallella Kickstarter campaign way back in 2012. Parallella is a development board for Adapteva's Epiphany processor line, which is a massively parallel (though initial silicon is limited to 16 or 64 cores, the design is intended to scale to 4096 cores) coprocessor with an impressive FLOPS/IOPS-to-the-watt figure. The 16-core board I signed up for is 32 GFLOPS at 2 W maximum power consumption.

Despite a number of (long) delays in finalizing the board and then again in production, my board arrived early last week. I haven't had a lot of time to look at it yet (and I don't know when I will), but I'm including here a bit of a first impression and some hints on how to get it rolling.

Setup

The first thing I did when I received the board and started looking into getting it running was cringe at the number of plug-ins and peripherals and cables that I was going to have to round up to get it booted. Fortunately, what the (obvious) documentation wasn't telling me was that I didn't need any of that stuff — which included things like micro-HDMI and USB OTG cables. What I did have to find was a wall wart capable of 2 A at 5 V, which I was fortunately able to buy off the junk shelf at a local computer store, and a micro&nbps;SD card. The card I got is a 16 GB Class 10, but it seems to be pretty pokey. It was also cheap, so OK. The power connector, by the way, is a type “M” at Radio Shack (2.1 mm ID, 5.5 mm OD).

Ultimately I booted the device with only the aforementioned SD card and a 3.3 V serial breakout. I realize that for some people the serial breakout might be a bigger stopper than a micro-HDMI cable, but I happened to have one of these serial cables on hand (don't let the description fool you, it has nothing in particular to do with the Pi!). If you do have a Pi, you could cable the two boards' serial ports together directly, as well. The correct wiring for that adapter onto the Parallella serial header (which is beside the Ethernet jack) is with the black wire at the board edge, green wire on the center pin, and white wire nearest the Ethernet. Do not connect the red 5 V wire anywhere!

With the serial cable installed, you should be able to see U-boot messages by running screen /dev/ttyUSB0 115200 (substituting whatever serial port device your dongle shows up as) and booting the Parallella with no SD card installed. Assuming that works, it's time to install Linux on the thing!

I opted to install the default Linaro image with the “headless” boot image. I followed more or less the “Method #2” instructions on the Parallella card creation page, with the exception that I fetched the headless boot image from the Parallella github page (rel.14.03.06-headless.tgz as of the time of this writing) instead of the boot image linked from the instructions. I then prepped the card and booted it normally, which (surprisingly and disappointingly) dropped me directly to a root prompt on the serial port!

The Linaro boot image has a number of unwanted (to me) “features” with respect to configuration and account management, as it comes out of the proverbial but non-existent box. Account management is tricky for installer-less images, since you have to let your user log in somehow; however, the Linaro image goes a bit too far in that it provides you with two methods — a predefined user with a known username and password (linaro/linaro) and a root prompt on both the serial console and tty1! So, the first thing you're going to want to do is give yourself a way to log in, a way to achieve root access, and then disable these things.

I simply used adduser to add a user account for myself, then vigr to add myself to the sudo group and a variety of console groups while removing the linaro user from the same. After verifying that that login worked (via ssh), I then used vipw -s to disable the linaro login by changing its password to *. Removing the root logins took just a little bit more digging, but it turned out to be as easy as editing /etc/default/autogetty and removing the contents of the AUTOGETTY_ARGS environment variable. This reverted both the serial console and tty1 to regular getty login prompts.

Impressions

This board is pretty neat, there's no doubt about it. It is almost exactly (possibly exactly) the same form factor as the Raspberry Pi, and in fact clips very nicely into a half-shell for the Pi that I had laying around. Getting it to the point where I could log in and poke at it was simple, and running a sample program on the Epiphany processor was similarly trivial. There are some neat projects underway to use the Epiphany for cool things (I am in particular interested to see where the SDR efforts go), and while there were some growing pains with the tools early on it looks like OpenCL is basically Just Working these days.

As Adapteva notes, this thing runs hot. Like, burn your finger hot. They ship it with a tiny heat sink for the Zynq processor/FPGA chip, but my Epiphany also runs extremely hot; I haven't heat sinked it yet, but the local computer store has some RAM sinks that I believe will install without touching any other components, and I plan to put one on it. Adapteva also recommends some forced air flow, and I would, too. Without a fan, the copper pours on the board itself even get warmer than I would prefer.

There are some unfortunate physical aspects to the board. For example, while I haven't done any heat load calculations or anything, I would be quite surprised if the Epiphany and Zynq chips aren't too close together for their combined dissipation. If I were going to run the board hard, I would worry about that. This is exacerbated by the fact that there are some physically large 0.1 μF capacitors immediately adjacent to these chips on the top side of the board, making a large, flat-bottomed heat sink problematic. I understand that a second board revision taking these concerns into account is on the way (and in fact the problematic capacitors are specifically called out in a post on the Adapteva forums describing the next-gen layout), and I would be happy to see that. In the meantime, I'll sink my Epiphany and set a fan where it can blow across the board.

tags: embedded, floss, parallella
path: / | permalink | Comments

[ | | ]