Here There Be Dragons (and "Four Horsemen")

Subject: General Tech | February 1, 2015 - 11:56 PM |
Tagged: x-plane, programming, development

“The Hacks of Life” is a blog from some developers at Laminar Research, which created the X-Plane franchise. Ben Supnik, the company's graphics lead, wrote an interesting and fairly lengthy blog post about optimizing for software performance, and it applies to more than just games.


In software development, the typical concept is: “write it, then profile it and fix what needs it”. This comes from the fear that developers will spend the majority of their time fixing the wrong problems. A profiler can tell you the chunks of code that hogs resources when you experience stutter, hitches, or hangs. They can also tell you how much of your overall performance is being used by specific parts of your application. These places have the most room for optimization, which allows you to budget more time for them. If you squeeze even a 100x performance increase out of code that runs for a tiny fraction of a millisecond per frame, then you spent all that time recovering at most a tiny fraction of a millisecond. All of that time could have been spent even doubling the performance of an 8ms effect, saving you 4 whole milliseconds per frame, which is the difference between 50 FPS and 60 FPS.

What I get from Ben's post is that, while not all of your code needs to run well, you cannot skip the design phase. The profiler can end up being an excuse to charge blindly into development. In a construction analogy, there is a difference between creating blueprints for your entire life, and building a house without any plans -- but that's okay, we can cut holes in the drywall if we need more windows and doors.

It's an interesting post, and is the eventual result of mantras being taken too literally.

Faster MinnowBoard Max With Lower $99 Price Coming In June 2014

Subject: General Tech | April 2, 2014 - 10:53 AM |
Tagged: minnowboard, linux, embedded, development, Bay Trail, atom e3825, atom e3815 recently announced the MinnowBoard Max which is a new Intel-powered development board with improved specifications and a $100 lower price versus the original MinnowBoard. The MinnowBoard Max is an open source hardware and software development platform designed and built by CircuitCo with guidance from Intel. The MinnowBoard Max is intended to be used to develop new Bay Trail-powered products or as the brain of embedded equipment that interacts with custom I/O such as FGPAs and specialized sensors.

MinnowBoard Max.jpg

The MinnowBoard Max is slightly smaller than the original at 2.9” x 3.9” and features an improved Intel Atom processor. Rather than the single core Atom E640 at 1 GHz the original MinnowBoard used, the MinnowBoard Max uses one of two Bay Trail Atom E3800-series SoCs. The base $99 model uses a single core Atom E3815 clocked at 1.46GHz while the $129 model uses a dual core Atom E3825 clocked at 1.33 GHz. The SoC is paired with either 1GB or 2GB of system RAM on the $99 or $129 model respectively.

The MinnowBoard Max supports a wide range of I/O including:

  • 26-pin low speed expansion port
    • SPI, I2C, I2S Audio, 2 x UARTs (TTL-level), 8 x buffered GPIO (two supporting PWM), +5V, Ground
  • 60-pin high speed expansion port
    • 1 x PCI-E 2.0 (one lane), 1 x SATA 3Gbps, 1 x USB 2.0 host, I2C, GPIO, JTAG, +5V, Ground
  • 1 x USB 3.0 port
  • 1 x USB 2.0 port
  • 1 x HDMI port
  • 1 x Micro SD
  • 1 x Gigabit Ethernet
  • 1 x Serial Debug (via separately sold cable)
  • 1 x Micro USB 2.0

The small form factor board supports Linux and Android operating systems with pending support for the Yocto Project (which helps developers create their own Linux distribution). Intel’s Bay Trail is not open source, but the company has reportedly provided open source drivers for the HD Graphics processor-integrated GPU.

The MinnowBoard Max starts at $99 and is slated to start shipping towards the end of June 2014. will also be releasing the hardware design files under a Creative Commons license shortly after that launch point. More information can be found on the MinnowBoard Max FAQ.

The open source MinnowBoard Max looks to be a respectable upgrade over the original, and the lower price should help to make the x86 architecture more attractive to developers of embedded systems especially in the wake of the proliferation of ARM-powered alternatives.

NVIDIA Launches Jetson TK1 Mobile CUDA Development Platform

Subject: General Tech, Mobile | March 25, 2014 - 09:34 PM |
Tagged: GTC 2014, tegra k1, nvidia, CUDA, kepler, jetson tk1, development

NVIDIA recently unified its desktop and mobile GPU lineups by moving to a Kepler-based GPU in its latest Tegra K1 mobile SoC. The move to the Kepler architecture has simplified development and enabled the CUDA programming model to run on mobile devices. One of the main points of the opening keynote earlier today was ‘CUDA everywhere,’ and NVIDIA has officially accomplished that goal by having CUDA compatible hardware from servers to desktops to tablets and embedded devices.

Speaking of embedded devices, NVIDIA showed off a new development board called the Jetson TK1. This tiny new board features a NVIDIA Tegra K1 SoC at its heart along with 2GB RAM and 16GB eMMC storage. The Jetson TK1 supports a plethora of IO options including an internal expansion port (GPIO compatible), SATA, one half-mini PCI-e slot, serial, USB 3.0, micro USB, Gigabit Ethernet, analog audio, and HDMI video outputs.

NVIDIA Jetson TK1 Mobile CUDA Development Board.jpg

Of course the Tegra K1 part is a quad core (4+1) ARM CPU and a Kepler-based GPU with 192 CUDA cores. The SoC is rated at 326 GFLOPS which enables some interesting compute workloads including machine vision.

Computer Vision On NVIDIA CUDA.jpg

In fact, Audi has been utilizing the Jetson TK1 development board to power its self-driving prototype car (more on that soon). Other intended uses for the new development board include robotics, medical devices, security systems, and perhaps low power compute clusters (such as an improved Pedraforca system).It can also be used as a simple desktop platform for testing and developing mobile applications for other Tegra K1 powered devices, of course.

NVIDIA VisionWorks GTC 2014.jpg

Beyond the hardware, the Jetson TK1 comes with the CUDA toolkit, OpenGL 4.4 driver, and NVIDIA VisionWorks SDK which includes programming libraries and sample code for getting machine vision applications running on the Tegra K1 SoC.

The Jetson TK1 is available for pre-order now at $192 and is slated to begin shipping in April. Interested developers can find more information on the NVIDIA developer website.