SlideShare a Scribd company logo
1 of 46
Download to read offline
Cloud, Distributed, Embedded.
Erlang in the Heterogeneous Computing World

Omer Kilic || @OmerK
omer@erlang-solutions.com
Outline
•
•
•
•
•
•
•
•

Challenges in modern computing systems
Heterogeneous computing
Co-processors and accelerators
Programming models and tools
Alternate architectures
Parallella Vision System
Erlang Embedded Project
Q&A

10/12/2013

Build Stuff 2013

Slide 2 of 46
Challenges: Software

• Frequency wall
• Memory bottlenecks
• Software complexity

10/12/2013

Build Stuff 2013

Slide 3 of 46
Amdahl’s Law
• “…the maximum speed-up through parallel
processing is set by the amount of code which
has to run serial”

10/12/2013

Build Stuff 2013

Slide 4 of 46
Challenges: Hardware

• Yield issues
• Wiring and interconnect
• Thermal density

• Power consumption
End of Moore’s law imminent…
10/12/2013

Build Stuff 2013

Slide 5 of 46
Challenges
“With nearly 10 billion devices connected to the
internet and predictions for exponential growth,
we’ve reached a point where the space, power,
and cost demands of traditional technology are
no longer sustainable.”
Meg Whitman
President and CEO, HP

10/12/2013

Build Stuff 2013

Slide 6 of 46
Internet of Things

10/12/2013

Build Stuff 2013

Slide 7 of 46
Device Architectures (I)

10/12/2013

Build Stuff 2013

Slide 8 of 46
Device Architectures (II)

10/12/2013

Build Stuff 2013

Slide 9 of 46
Heterogeneous Computing (I)
• Special purpose, highly specialised
architectures will outperform general purpose
processing devices
– Possibly by orders of magnitude
– In terms of energy efficiency as well as raw speed
– Parallel execution is key

• Non-programmable/pseudo-programmable
accelerators: ASIC, DSP, GPU, …
• Fully programmable accelerators: FPGAs
10/12/2013

Build Stuff 2013

Slide 10 of 46
Open Compute Project

10/12/2013

Build Stuff 2013

Slide 11 of 46
Heterogeneous Computing (II)

10/12/2013

Build Stuff 2013

Slide 12 of 46
GPUs

10/12/2013

Build Stuff 2013

Slide 13 of 46
Anatomy of a GPU

10/12/2013

Build Stuff 2013

Slide 14 of 46
Co-processors: NetFPGA 10G

10/12/2013

Build Stuff 2013

Slide 15 of 46
Co-processors: Generic COTS devices

10/12/2013

Build Stuff 2013

Slide 16 of 46
Landscape of accelerator programming
Interface

CUDA

OpenCL

DirectCompute

RenderScript

Originator

NVIDIA

Khronos (Apple)

Microsoft

Google

Year

2007

2008

2009

2011

Area

HPC, desktop

Desktop, mobile,
embedded, HPC

Desktop

Mobile

OS

Windows, Linux,
Mac OS

Windows, Linux,
Mac OS (10.6+)

Windows (Vista+)

Android (3.0+)

Devices

GPUs (NVIDIA)

CPUs, GPUs,
custom

GPUs (NVIDIA,
AMD)

CPUs, GPUs,
DSPs

Work unit

Kernel

Kernel

Compute shader

Compute script

Language

CUDA C/C++

OpenCL C

HLSL

Script C

Distributed

Source, PTX

Source

Source, bytecode

LLVM bitcode

From: “The landscape of accelerator programming: a view from ARM”, Lokhmotov, A.,
3rd UK GPU Computing Conference, London
10/12/2013

Build Stuff 2013

Slide 17 of 46
Accelerator types
• Programmable accelerators
– CPU Vector extensions: x86/SSE/AVX,
PowerPC/VMX, ARM/NEON
– GPUs supporting general-purpose computing
(GPGPUs)
– Sony/Toshiba/IBM Cell (Sony PlayStation 3, HPC)
– ClearSpeed CSX (HPC, embedded)
– Adapteva Epiphany (HPC, mobile)
– Intel MIC (HPC)

10/12/2013

Build Stuff 2013

Slide 18 of 46
Programming accelerators
• Proprietary low-level APIs, typically C-based:
– Vector intrinsics
– NVIDIA CUDA
– ATI Brook+
– ClearSpeed Cn

• No software portability, obsolescence risk.

10/12/2013

Build Stuff 2013

Slide 19 of 46
OpenCL (I)
“OpenCL (Open Computing Language) is an open,
royalty-free standard for general-purpose parallel
programming of heterogeneous systems. OpenCL
provides a uniform programming environment for
software developers to write efficient, portable code for
high-performance compute servers, desktop computer
systems and handheld devices using a diverse mix of
multi-core CPUs, GPUs, Cell-type architectures and
other parallel processors such as DSPs.”

10/12/2013

Build Stuff 2013

Slide 20 of 46
OpenCL (II)
• Allows you to write C like code which executes
on GPUs and many other devices
– CPUs, FPGAs, various other architectures

• Key point is data parallelism: applying the
same function to a large amount of data
• Allows us to leverage devices like GPUs from
Erlang easily with a minimal wrapper

10/12/2013

Build Stuff 2013

Slide 21 of 46
The Parallella Board

10/12/2013

Build Stuff 2013

Slide 22 of 46
Shiny prototype!

10/12/2013

Build Stuff 2013

Slide 23 of 46
The Parallella Board

10/12/2013

Build Stuff 2013

Slide 24 of 46
Epiphany Architecture

10/12/2013

Build Stuff 2013

Slide 25 of 46
Epiphany-IV 64-core 28nm (E64G401)
•
•
•
•
•
•
•
•
•
•
•
•

64 High Performance RISC CPU Cores
800 MHz Operating Frequency
100 GFLOPS Peak Performance
1.6 TB/s Local Memory Bandwidth
102 GB/s Network-On-Chip Bisection Bandwidth
6.4 GB/s Off-Chip Bandwidth
2 MB On-Chip Distributed Shared Memory
2 Watt Maximum Chip Power Consumption
IEEE Floating Point Instruction Set
Fully-featured ANSI-C/C++ programmable
GNU/Eclipse based tool chain
Source synchronous LVDS off chip links for host or direct chip-tochip interfacing.
• Chip to chip links for integrating up to 64 chips on a single board

10/12/2013

Build Stuff 2013

Slide 26 of 46
Parallella Vision Demo - Overview

10/12/2013

Build Stuff 2013

Slide 27 of 46
Parallella Vision Demo - Cameras

10/12/2013

Build Stuff 2013

Slide 28 of 46
Parallella Vision Demo - Architecture

10/12/2013

Build Stuff 2013

Slide 29 of 46
OpenCL and Erlang
• Erlang is not that great for crunching image data.
– This is where OpenCL fits in.

• Erlang provides an environment around OpenCL.
Our server implementation collect frames,
offloads processing to Epiphany and send results
back.
– Low latency distributed communications and
message passing between processes and nodes
– Monitoring and supervision facilities
– “Glue” between heterogeneous nodes
10/12/2013

Build Stuff 2013

Slide 30 of 46
OpenCL on the Parallella
• Parallella is a little different than standard
GPUs
– Work sizes are different (smaller amount of cores
compared to GPU)
– Requires some forethought into structuring your
kernels

10/12/2013

Build Stuff 2013

Slide 31 of 46
Parallella and Erlang
• Ubuntu armhf packages up and running
– Will be included in the standard distro image

• Vision Demo code available now
– https://github.com/esl/parcv

10/12/2013

Build Stuff 2013

Slide 32 of 46
Embedded Landscape

10/12/2013

Build Stuff 2013

Slide 34 of 46
#include <stats.h>

Source: http://embedded.com/electronics-blogs/programming-pointers/4372180/Unexpected-trends

10/12/2013

Build Stuff 2013

Slide 35 of 46
External Interfaces in Erlang

10/12/2013

Build Stuff 2013

Slide 36 of 46
Accessing hardware
• Peripherals are memory mapped
• Access via /dev/mem…
– Faster, needs root, potentially dangerous!

• …or by kernel modules/sysfs
– Slower, doesn’t need root, easier, relatively safer

Generally very messy…

10/12/2013

Build Stuff 2013

Slide 37 of 46
Introducing…

Erlang/ALE
Actor

Library for
Embedded
http://github.com/esl/erlang-ale

10/12/2013

Build Stuff 2013

Slide 38 of 46
Erlang/ALE
• Brings embedded peripheral interfaces into
the Erlang domain
• Provides easy to use, familiar abstractions for
Erlang programmers
• Uses Raspberry Pi as reference platform, easy
to port it to other embedded platforms
• Open source (Apache version 2)

10/12/2013

Build Stuff 2013

Slide 39 of 46
Beta release
• Based on pihwm
– http://omerk.github.io/pihwm

• GPIO and GPIO interrupts, SPI, I2C and PWM
peripherals supported
• Documentation, supporting material and
educational package under development

10/12/2013

Build Stuff 2013

Slide 40 of 46
ALE Example: Blink!
{ok, _} = gpio:start_link(?LED_PIN, output),
blink() ->
gpio:write(?LED_PIN, 1),
timer:sleep(1000),
gpio:write(?LED_PIN, 0),
timer:sleep(1000).

10/12/2013

Build Stuff 2013

Slide 41 of 46
ALE Example: Interrupts
{ok, _} = gpio:start_link(?IN_PIN, input),
ok = gpio:set_int(?IN_PIN, rising),
handle_info({gpio_interrupt, _Pin,
_Condition}, State) ->
blink().

10/12/2013

Build Stuff 2013

Slide 42 of 46
Hardware Projects – Demo Board

10/12/2013

Build Stuff 2013

Slide 43 of 46
Packages for Embedded Architectures

https://www.erlang-solutions.com/downloads/download-erlang-otp

10/12/2013

Build Stuff 2013

Slide 44 of 46
Erlang

10/12/2013

Build Stuff 2013

Slide 45 of 46
Thank you
• http://erlang-embedded.com
• embedded@erlang-solutions.com
• @ErlangEmbedded

“

The world is concurrent.
Things in the world don't share data.
Things communicate with messages.
Things fail.
- Joe Armstrong
Father of Erlang

10/12/2013

Build Stuff 2013

Slide 46 of 46

More Related Content

What's hot

Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitSulamita Garcia
 
Synthesizing HDL using LeonardoSpectrum
Synthesizing HDL using LeonardoSpectrumSynthesizing HDL using LeonardoSpectrum
Synthesizing HDL using LeonardoSpectrumHossam Hassan
 
Introduction to fpga synthesis tools
Introduction to fpga synthesis toolsIntroduction to fpga synthesis tools
Introduction to fpga synthesis toolsHossam Hassan
 
Public Seminar_Final 18112014
Public Seminar_Final 18112014Public Seminar_Final 18112014
Public Seminar_Final 18112014Hossam Hassan
 
Newbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeNewbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeOfer Rosenberg
 
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking TechnologyDesign of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking TechnologyTELKOMNIKA JOURNAL
 
Developing an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architectureDeveloping an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architectureChristian Charreyre
 
Electronic Design Automation
Electronic Design AutomationElectronic Design Automation
Electronic Design AutomationCADD Centre
 
Intel's Presentation in SIGGRAPH OpenCL BOF
Intel's Presentation in SIGGRAPH OpenCL BOFIntel's Presentation in SIGGRAPH OpenCL BOF
Intel's Presentation in SIGGRAPH OpenCL BOFOfer Rosenberg
 
Introduction to FPGA, VHDL
Introduction to FPGA, VHDL  Introduction to FPGA, VHDL
Introduction to FPGA, VHDL Amr Rashed
 
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Pradeep Singh
 
Nios2 and ip core
Nios2 and ip coreNios2 and ip core
Nios2 and ip coreanishgoel
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Codemotion
 
FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)rinnocente
 
Automatic generation of platform architectures using open cl and fpga roadmap
Automatic generation of platform architectures using open cl and fpga roadmapAutomatic generation of platform architectures using open cl and fpga roadmap
Automatic generation of platform architectures using open cl and fpga roadmapManolis Vavalis
 
Introduction to intel galileo board gen2
Introduction to intel galileo board gen2Introduction to intel galileo board gen2
Introduction to intel galileo board gen2Harshit Srivastava
 

What's hot (20)

Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer Kit
 
Synthesizing HDL using LeonardoSpectrum
Synthesizing HDL using LeonardoSpectrumSynthesizing HDL using LeonardoSpectrum
Synthesizing HDL using LeonardoSpectrum
 
Introduction to fpga synthesis tools
Introduction to fpga synthesis toolsIntroduction to fpga synthesis tools
Introduction to fpga synthesis tools
 
Public Seminar_Final 18112014
Public Seminar_Final 18112014Public Seminar_Final 18112014
Public Seminar_Final 18112014
 
Newbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeNewbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universe
 
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking TechnologyDesign of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking Technology
 
Developing an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architectureDeveloping an embedded video application on dual Linux + FPGA architecture
Developing an embedded video application on dual Linux + FPGA architecture
 
The GPGPU Continuum
The GPGPU ContinuumThe GPGPU Continuum
The GPGPU Continuum
 
Electronic Design Automation
Electronic Design AutomationElectronic Design Automation
Electronic Design Automation
 
Introduction to EDA Tools
Introduction to EDA ToolsIntroduction to EDA Tools
Introduction to EDA Tools
 
GPU Ecosystem
GPU EcosystemGPU Ecosystem
GPU Ecosystem
 
Intel's Presentation in SIGGRAPH OpenCL BOF
Intel's Presentation in SIGGRAPH OpenCL BOFIntel's Presentation in SIGGRAPH OpenCL BOF
Intel's Presentation in SIGGRAPH OpenCL BOF
 
Introduction to FPGA, VHDL
Introduction to FPGA, VHDL  Introduction to FPGA, VHDL
Introduction to FPGA, VHDL
 
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
Development of Signal Processing Algorithms using OpenCL for FPGA based Archi...
 
Intel galileo
Intel galileoIntel galileo
Intel galileo
 
Nios2 and ip core
Nios2 and ip coreNios2 and ip core
Nios2 and ip core
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)FPGA/Reconfigurable computing (HPRC)
FPGA/Reconfigurable computing (HPRC)
 
Automatic generation of platform architectures using open cl and fpga roadmap
Automatic generation of platform architectures using open cl and fpga roadmapAutomatic generation of platform architectures using open cl and fpga roadmap
Automatic generation of platform architectures using open cl and fpga roadmap
 
Introduction to intel galileo board gen2
Introduction to intel galileo board gen2Introduction to intel galileo board gen2
Introduction to intel galileo board gen2
 

Viewers also liked

Customers And Employees Sample Slides
Customers And Employees Sample SlidesCustomers And Employees Sample Slides
Customers And Employees Sample SlidesBill Gammell
 
Internet Of Things in Automobile Industry
Internet Of Things in Automobile IndustryInternet Of Things in Automobile Industry
Internet Of Things in Automobile IndustryIEI GSC
 
The Connected Car: Driving Towards the Future
The Connected Car: Driving Towards the FutureThe Connected Car: Driving Towards the Future
The Connected Car: Driving Towards the FutureNudge Software Inc.
 
Embedded system in automobile
Embedded system in automobileEmbedded system in automobile
Embedded system in automobileAali Aalim
 
Smart antenna systems
Smart antenna systems Smart antenna systems
Smart antenna systems Apoorva Shetty
 
Embedded Systems in Automobile
Embedded Systems in AutomobileEmbedded Systems in Automobile
Embedded Systems in AutomobileAbhishek Sutrave
 
Smart Camera as Embedded System
Smart Camera as Embedded SystemSmart Camera as Embedded System
Smart Camera as Embedded SystemPunnam Chandar
 

Viewers also liked (9)

Customers And Employees Sample Slides
Customers And Employees Sample SlidesCustomers And Employees Sample Slides
Customers And Employees Sample Slides
 
Sentinel Smart Car Devices
Sentinel Smart Car DevicesSentinel Smart Car Devices
Sentinel Smart Car Devices
 
Internet Of Things in Automobile Industry
Internet Of Things in Automobile IndustryInternet Of Things in Automobile Industry
Internet Of Things in Automobile Industry
 
The Connected Car: Driving Towards the Future
The Connected Car: Driving Towards the FutureThe Connected Car: Driving Towards the Future
The Connected Car: Driving Towards the Future
 
Connected Car Technology
Connected Car TechnologyConnected Car Technology
Connected Car Technology
 
Embedded system in automobile
Embedded system in automobileEmbedded system in automobile
Embedded system in automobile
 
Smart antenna systems
Smart antenna systems Smart antenna systems
Smart antenna systems
 
Embedded Systems in Automobile
Embedded Systems in AutomobileEmbedded Systems in Automobile
Embedded Systems in Automobile
 
Smart Camera as Embedded System
Smart Camera as Embedded SystemSmart Camera as Embedded System
Smart Camera as Embedded System
 

Similar to Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World

Fel Flyer F11
Fel Flyer F11Fel Flyer F11
Fel Flyer F11chitlesh
 
0xdroid -- community-developed Android distribution by 0xlab
0xdroid -- community-developed Android distribution by 0xlab0xdroid -- community-developed Android distribution by 0xlab
0xdroid -- community-developed Android distribution by 0xlabNational Cheng Kung University
 
Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Intel® Software
 
FEL Flyer F12
FEL Flyer F12FEL Flyer F12
FEL Flyer F12chitlesh
 
20150528 group presentation jing
20150528 group presentation jing20150528 group presentation jing
20150528 group presentation jingJing Deng
 
LCU13: GPGPU on ARM Experience Report
LCU13: GPGPU on ARM Experience ReportLCU13: GPGPU on ARM Experience Report
LCU13: GPGPU on ARM Experience ReportLinaro
 
Computing Performance: On the Horizon (2021)
Computing Performance: On the Horizon (2021)Computing Performance: On the Horizon (2021)
Computing Performance: On the Horizon (2021)Brendan Gregg
 
YOW2021 Computing Performance
YOW2021 Computing PerformanceYOW2021 Computing Performance
YOW2021 Computing PerformanceBrendan Gregg
 
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...chiportal
 
Backend.AI Technical Introduction (19.09 / 2019 Autumn)
Backend.AI Technical Introduction (19.09 / 2019 Autumn)Backend.AI Technical Introduction (19.09 / 2019 Autumn)
Backend.AI Technical Introduction (19.09 / 2019 Autumn)Lablup Inc.
 
Achieving AI @scale on Mobile Devices
Achieving AI @scale on Mobile DevicesAchieving AI @scale on Mobile Devices
Achieving AI @scale on Mobile DevicesQualcomm Research
 
DATE 2020: Design, Automation and Test in Europe Conference
DATE 2020: Design, Automation and Test in Europe ConferenceDATE 2020: Design, Automation and Test in Europe Conference
DATE 2020: Design, Automation and Test in Europe ConferenceLEGATO project
 
Harnessing the virtual realm for successful real world artificial intelligence
Harnessing the virtual realm for successful real world artificial intelligenceHarnessing the virtual realm for successful real world artificial intelligence
Harnessing the virtual realm for successful real world artificial intelligenceAlison B. Lowndes
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) ijceronline
 
Trends in Systems and How to Get Efficient Performance
Trends in Systems and How to Get Efficient PerformanceTrends in Systems and How to Get Efficient Performance
Trends in Systems and How to Get Efficient Performanceinside-BigData.com
 
FPGAs in the cloud? (October 2017)
FPGAs in the cloud? (October 2017)FPGAs in the cloud? (October 2017)
FPGAs in the cloud? (October 2017)Julien SIMON
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...mCloud
 

Similar to Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World (20)

Fel Flyer F11
Fel Flyer F11Fel Flyer F11
Fel Flyer F11
 
0xdroid -- community-developed Android distribution by 0xlab
0xdroid -- community-developed Android distribution by 0xlab0xdroid -- community-developed Android distribution by 0xlab
0xdroid -- community-developed Android distribution by 0xlab
 
Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)
 
FEL Flyer F12
FEL Flyer F12FEL Flyer F12
FEL Flyer F12
 
20150528 group presentation jing
20150528 group presentation jing20150528 group presentation jing
20150528 group presentation jing
 
LCU13: GPGPU on ARM Experience Report
LCU13: GPGPU on ARM Experience ReportLCU13: GPGPU on ARM Experience Report
LCU13: GPGPU on ARM Experience Report
 
Computing Performance: On the Horizon (2021)
Computing Performance: On the Horizon (2021)Computing Performance: On the Horizon (2021)
Computing Performance: On the Horizon (2021)
 
YOW2021 Computing Performance
YOW2021 Computing PerformanceYOW2021 Computing Performance
YOW2021 Computing Performance
 
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...
 
Backend.AI Technical Introduction (19.09 / 2019 Autumn)
Backend.AI Technical Introduction (19.09 / 2019 Autumn)Backend.AI Technical Introduction (19.09 / 2019 Autumn)
Backend.AI Technical Introduction (19.09 / 2019 Autumn)
 
Achieving AI @scale on Mobile Devices
Achieving AI @scale on Mobile DevicesAchieving AI @scale on Mobile Devices
Achieving AI @scale on Mobile Devices
 
DATE 2020: Design, Automation and Test in Europe Conference
DATE 2020: Design, Automation and Test in Europe ConferenceDATE 2020: Design, Automation and Test in Europe Conference
DATE 2020: Design, Automation and Test in Europe Conference
 
Harnessing the virtual realm for successful real world artificial intelligence
Harnessing the virtual realm for successful real world artificial intelligenceHarnessing the virtual realm for successful real world artificial intelligence
Harnessing the virtual realm for successful real world artificial intelligence
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
Fixed-point Multi-Core DSP Platform
Fixed-point Multi-Core DSP PlatformFixed-point Multi-Core DSP Platform
Fixed-point Multi-Core DSP Platform
 
Amd vs intel
Amd vs intelAmd vs intel
Amd vs intel
 
GIST AI-X Computing Cluster
GIST AI-X Computing ClusterGIST AI-X Computing Cluster
GIST AI-X Computing Cluster
 
Trends in Systems and How to Get Efficient Performance
Trends in Systems and How to Get Efficient PerformanceTrends in Systems and How to Get Efficient Performance
Trends in Systems and How to Get Efficient Performance
 
FPGAs in the cloud? (October 2017)
FPGAs in the cloud? (October 2017)FPGAs in the cloud? (October 2017)
FPGAs in the cloud? (October 2017)
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
 

More from Omer Kilic

Bare Metal from a Hardware Perspective: Embedded Frameworks & Build Systems
Bare Metal from a Hardware Perspective: Embedded Frameworks & Build SystemsBare Metal from a Hardware Perspective: Embedded Frameworks & Build Systems
Bare Metal from a Hardware Perspective: Embedded Frameworks & Build SystemsOmer Kilic
 
Gearing up for Volume Manufacturing
Gearing up for Volume ManufacturingGearing up for Volume Manufacturing
Gearing up for Volume ManufacturingOmer Kilic
 
The Process of Shipping Hardware Products
The Process of Shipping Hardware ProductsThe Process of Shipping Hardware Products
The Process of Shipping Hardware ProductsOmer Kilic
 
Confusion of Things — The IoT Hardware Kerfuffle
Confusion of Things — The IoT Hardware KerfuffleConfusion of Things — The IoT Hardware Kerfuffle
Confusion of Things — The IoT Hardware KerfuffleOmer Kilic
 
Fast and Furious: Overclocking chips for fun and profit
Fast and Furious: Overclocking chips for fun and profitFast and Furious: Overclocking chips for fun and profit
Fast and Furious: Overclocking chips for fun and profitOmer Kilic
 
concurrency.cc OSHUG #3
concurrency.cc OSHUG #3concurrency.cc OSHUG #3
concurrency.cc OSHUG #3Omer Kilic
 
BURO Arduino Workshop
BURO Arduino WorkshopBURO Arduino Workshop
BURO Arduino WorkshopOmer Kilic
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to ArduinoOmer Kilic
 
Interfacing with Arduino
Interfacing with ArduinoInterfacing with Arduino
Interfacing with ArduinoOmer Kilic
 
Introduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon TechnologyIntroduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon TechnologyOmer Kilic
 
TinkerSoc Electronics 101
TinkerSoc Electronics 101TinkerSoc Electronics 101
TinkerSoc Electronics 101Omer Kilic
 
Beer Bottle Night Lamp
Beer Bottle Night LampBeer Bottle Night Lamp
Beer Bottle Night LampOmer Kilic
 

More from Omer Kilic (12)

Bare Metal from a Hardware Perspective: Embedded Frameworks & Build Systems
Bare Metal from a Hardware Perspective: Embedded Frameworks & Build SystemsBare Metal from a Hardware Perspective: Embedded Frameworks & Build Systems
Bare Metal from a Hardware Perspective: Embedded Frameworks & Build Systems
 
Gearing up for Volume Manufacturing
Gearing up for Volume ManufacturingGearing up for Volume Manufacturing
Gearing up for Volume Manufacturing
 
The Process of Shipping Hardware Products
The Process of Shipping Hardware ProductsThe Process of Shipping Hardware Products
The Process of Shipping Hardware Products
 
Confusion of Things — The IoT Hardware Kerfuffle
Confusion of Things — The IoT Hardware KerfuffleConfusion of Things — The IoT Hardware Kerfuffle
Confusion of Things — The IoT Hardware Kerfuffle
 
Fast and Furious: Overclocking chips for fun and profit
Fast and Furious: Overclocking chips for fun and profitFast and Furious: Overclocking chips for fun and profit
Fast and Furious: Overclocking chips for fun and profit
 
concurrency.cc OSHUG #3
concurrency.cc OSHUG #3concurrency.cc OSHUG #3
concurrency.cc OSHUG #3
 
BURO Arduino Workshop
BURO Arduino WorkshopBURO Arduino Workshop
BURO Arduino Workshop
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Interfacing with Arduino
Interfacing with ArduinoInterfacing with Arduino
Interfacing with Arduino
 
Introduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon TechnologyIntroduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon Technology
 
TinkerSoc Electronics 101
TinkerSoc Electronics 101TinkerSoc Electronics 101
TinkerSoc Electronics 101
 
Beer Bottle Night Lamp
Beer Bottle Night LampBeer Bottle Night Lamp
Beer Bottle Night Lamp
 

Recently uploaded

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Recently uploaded (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 

Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World

  • 1. Cloud, Distributed, Embedded. Erlang in the Heterogeneous Computing World Omer Kilic || @OmerK omer@erlang-solutions.com
  • 2. Outline • • • • • • • • Challenges in modern computing systems Heterogeneous computing Co-processors and accelerators Programming models and tools Alternate architectures Parallella Vision System Erlang Embedded Project Q&A 10/12/2013 Build Stuff 2013 Slide 2 of 46
  • 3. Challenges: Software • Frequency wall • Memory bottlenecks • Software complexity 10/12/2013 Build Stuff 2013 Slide 3 of 46
  • 4. Amdahl’s Law • “…the maximum speed-up through parallel processing is set by the amount of code which has to run serial” 10/12/2013 Build Stuff 2013 Slide 4 of 46
  • 5. Challenges: Hardware • Yield issues • Wiring and interconnect • Thermal density • Power consumption End of Moore’s law imminent… 10/12/2013 Build Stuff 2013 Slide 5 of 46
  • 6. Challenges “With nearly 10 billion devices connected to the internet and predictions for exponential growth, we’ve reached a point where the space, power, and cost demands of traditional technology are no longer sustainable.” Meg Whitman President and CEO, HP 10/12/2013 Build Stuff 2013 Slide 6 of 46
  • 7. Internet of Things 10/12/2013 Build Stuff 2013 Slide 7 of 46
  • 8. Device Architectures (I) 10/12/2013 Build Stuff 2013 Slide 8 of 46
  • 10. Heterogeneous Computing (I) • Special purpose, highly specialised architectures will outperform general purpose processing devices – Possibly by orders of magnitude – In terms of energy efficiency as well as raw speed – Parallel execution is key • Non-programmable/pseudo-programmable accelerators: ASIC, DSP, GPU, … • Fully programmable accelerators: FPGAs 10/12/2013 Build Stuff 2013 Slide 10 of 46
  • 11. Open Compute Project 10/12/2013 Build Stuff 2013 Slide 11 of 46
  • 14. Anatomy of a GPU 10/12/2013 Build Stuff 2013 Slide 14 of 46
  • 15. Co-processors: NetFPGA 10G 10/12/2013 Build Stuff 2013 Slide 15 of 46
  • 16. Co-processors: Generic COTS devices 10/12/2013 Build Stuff 2013 Slide 16 of 46
  • 17. Landscape of accelerator programming Interface CUDA OpenCL DirectCompute RenderScript Originator NVIDIA Khronos (Apple) Microsoft Google Year 2007 2008 2009 2011 Area HPC, desktop Desktop, mobile, embedded, HPC Desktop Mobile OS Windows, Linux, Mac OS Windows, Linux, Mac OS (10.6+) Windows (Vista+) Android (3.0+) Devices GPUs (NVIDIA) CPUs, GPUs, custom GPUs (NVIDIA, AMD) CPUs, GPUs, DSPs Work unit Kernel Kernel Compute shader Compute script Language CUDA C/C++ OpenCL C HLSL Script C Distributed Source, PTX Source Source, bytecode LLVM bitcode From: “The landscape of accelerator programming: a view from ARM”, Lokhmotov, A., 3rd UK GPU Computing Conference, London 10/12/2013 Build Stuff 2013 Slide 17 of 46
  • 18. Accelerator types • Programmable accelerators – CPU Vector extensions: x86/SSE/AVX, PowerPC/VMX, ARM/NEON – GPUs supporting general-purpose computing (GPGPUs) – Sony/Toshiba/IBM Cell (Sony PlayStation 3, HPC) – ClearSpeed CSX (HPC, embedded) – Adapteva Epiphany (HPC, mobile) – Intel MIC (HPC) 10/12/2013 Build Stuff 2013 Slide 18 of 46
  • 19. Programming accelerators • Proprietary low-level APIs, typically C-based: – Vector intrinsics – NVIDIA CUDA – ATI Brook+ – ClearSpeed Cn • No software portability, obsolescence risk. 10/12/2013 Build Stuff 2013 Slide 19 of 46
  • 20. OpenCL (I) “OpenCL (Open Computing Language) is an open, royalty-free standard for general-purpose parallel programming of heterogeneous systems. OpenCL provides a uniform programming environment for software developers to write efficient, portable code for high-performance compute servers, desktop computer systems and handheld devices using a diverse mix of multi-core CPUs, GPUs, Cell-type architectures and other parallel processors such as DSPs.” 10/12/2013 Build Stuff 2013 Slide 20 of 46
  • 21. OpenCL (II) • Allows you to write C like code which executes on GPUs and many other devices – CPUs, FPGAs, various other architectures • Key point is data parallelism: applying the same function to a large amount of data • Allows us to leverage devices like GPUs from Erlang easily with a minimal wrapper 10/12/2013 Build Stuff 2013 Slide 21 of 46
  • 22. The Parallella Board 10/12/2013 Build Stuff 2013 Slide 22 of 46
  • 24. The Parallella Board 10/12/2013 Build Stuff 2013 Slide 24 of 46
  • 26. Epiphany-IV 64-core 28nm (E64G401) • • • • • • • • • • • • 64 High Performance RISC CPU Cores 800 MHz Operating Frequency 100 GFLOPS Peak Performance 1.6 TB/s Local Memory Bandwidth 102 GB/s Network-On-Chip Bisection Bandwidth 6.4 GB/s Off-Chip Bandwidth 2 MB On-Chip Distributed Shared Memory 2 Watt Maximum Chip Power Consumption IEEE Floating Point Instruction Set Fully-featured ANSI-C/C++ programmable GNU/Eclipse based tool chain Source synchronous LVDS off chip links for host or direct chip-tochip interfacing. • Chip to chip links for integrating up to 64 chips on a single board 10/12/2013 Build Stuff 2013 Slide 26 of 46
  • 27. Parallella Vision Demo - Overview 10/12/2013 Build Stuff 2013 Slide 27 of 46
  • 28. Parallella Vision Demo - Cameras 10/12/2013 Build Stuff 2013 Slide 28 of 46
  • 29. Parallella Vision Demo - Architecture 10/12/2013 Build Stuff 2013 Slide 29 of 46
  • 30. OpenCL and Erlang • Erlang is not that great for crunching image data. – This is where OpenCL fits in. • Erlang provides an environment around OpenCL. Our server implementation collect frames, offloads processing to Epiphany and send results back. – Low latency distributed communications and message passing between processes and nodes – Monitoring and supervision facilities – “Glue” between heterogeneous nodes 10/12/2013 Build Stuff 2013 Slide 30 of 46
  • 31. OpenCL on the Parallella • Parallella is a little different than standard GPUs – Work sizes are different (smaller amount of cores compared to GPU) – Requires some forethought into structuring your kernels 10/12/2013 Build Stuff 2013 Slide 31 of 46
  • 32. Parallella and Erlang • Ubuntu armhf packages up and running – Will be included in the standard distro image • Vision Demo code available now – https://github.com/esl/parcv 10/12/2013 Build Stuff 2013 Slide 32 of 46
  • 33.
  • 36. External Interfaces in Erlang 10/12/2013 Build Stuff 2013 Slide 36 of 46
  • 37. Accessing hardware • Peripherals are memory mapped • Access via /dev/mem… – Faster, needs root, potentially dangerous! • …or by kernel modules/sysfs – Slower, doesn’t need root, easier, relatively safer Generally very messy… 10/12/2013 Build Stuff 2013 Slide 37 of 46
  • 39. Erlang/ALE • Brings embedded peripheral interfaces into the Erlang domain • Provides easy to use, familiar abstractions for Erlang programmers • Uses Raspberry Pi as reference platform, easy to port it to other embedded platforms • Open source (Apache version 2) 10/12/2013 Build Stuff 2013 Slide 39 of 46
  • 40. Beta release • Based on pihwm – http://omerk.github.io/pihwm • GPIO and GPIO interrupts, SPI, I2C and PWM peripherals supported • Documentation, supporting material and educational package under development 10/12/2013 Build Stuff 2013 Slide 40 of 46
  • 41. ALE Example: Blink! {ok, _} = gpio:start_link(?LED_PIN, output), blink() -> gpio:write(?LED_PIN, 1), timer:sleep(1000), gpio:write(?LED_PIN, 0), timer:sleep(1000). 10/12/2013 Build Stuff 2013 Slide 41 of 46
  • 42. ALE Example: Interrupts {ok, _} = gpio:start_link(?IN_PIN, input), ok = gpio:set_int(?IN_PIN, rising), handle_info({gpio_interrupt, _Pin, _Condition}, State) -> blink(). 10/12/2013 Build Stuff 2013 Slide 42 of 46
  • 43. Hardware Projects – Demo Board 10/12/2013 Build Stuff 2013 Slide 43 of 46
  • 44. Packages for Embedded Architectures https://www.erlang-solutions.com/downloads/download-erlang-otp 10/12/2013 Build Stuff 2013 Slide 44 of 46
  • 46. Thank you • http://erlang-embedded.com • embedded@erlang-solutions.com • @ErlangEmbedded “ The world is concurrent. Things in the world don't share data. Things communicate with messages. Things fail. - Joe Armstrong Father of Erlang 10/12/2013 Build Stuff 2013 Slide 46 of 46