Tag: raytracer

  • BeagleBone Black: slow as a dog

    All benchmarks are artificial, but this one had me scratching my head. One hears  that the BeagleBone Black is screamingly fast compared to the Raspberry Pi; faster, newer processor, blahdeblah, mcbtyc, etc. I found the opposite is true.

    So I buy one at the exceptionally soggy Toronto Mini Maker Faire. Props to the CircuitCo folks, they are easy to set up: just a mini-USB cable provides power and virtual network shell. And BoneScript — an Arduino-like JavaScript library — is very clever indeed. But I need to see if this thing has any grunt, and so I need a benchmark.

    After hearing about the business-card raytracer, I thought it would be perfect. I compiled it on both machines with:

    g++  -Ofast   card.cpp   -o card

    and then ran it with:

    time ./card > /dev/null

    The results are … surprising:

    • Raspberry Pi: 4′ 15″
    • BeagleBone Black: 12′ 39″ → 3× slower

    (In comparison, my i7 quad-core laptop runs it in 8½ seconds.)

    I don’t have any explanation why the BBB is so much slower. It’s almost as if the compiler isn’t fully optimizing under Ã…ngström Linux.

    Raspberry Pi: system info

    $ uname -a
    Linux rpi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l GNU/Linux
    
    $ cat /proc/cpuinfo 
    Processor    : ARMv6-compatible processor rev 7 (v6l)
    BogoMIPS    : 697.95
    Features    : swp half thumb fastmult vfp edsp java tls 
    CPU implementer    : 0x41
    CPU architecture: 7
    CPU variant    : 0x0
    CPU part    : 0xb76
    CPU revision    : 7
    
    Hardware    : BCM2708
    Revision    : 000f

    BeagleBone Black: system info

    # uname -a
    Linux beaglebone 3.8.13 #1 SMP Tue Jun 18 02:11:09 EDT 2013 armv7l GNU/Linux
    # cat /proc/cpuinfo 
    processor    : 0
    model name    : ARMv7 Processor rev 2 (v7l)
    BogoMIPS    : 297.40
    Features    : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls 
    CPU implementer    : 0x41
    CPU architecture: 7
    CPU variant    : 0x3
    CPU part    : 0xc08
    CPU revision    : 2
    
    Hardware    : Generic AM33XX (Flattened Device Tree)
    Revision    : 0000

    Both boards are running at stock speed.

    Update: I’ve tried with an external power supply, and checked that the processor was running at full speed. It made no difference. I suspect that Raspbian enables armhf floating point by default, while Ã…ngström needs to be told to use it.