Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Exploring Parallelism with Raspberry Pi and Nvidia Jetson Nano

Exploring Parallelism with Raspberry Pi and Nvidia Jetson Nano

The free lunch provided by Moore's Law is running out. Still, customers will always want more performance. Parallelism (especially with GPUs) clears a path for software developers to deliver more. This talk offers an exploration of parallelism and artificial intelligence on GPUs with open source tools like Python and Clojure. Audience members will learn how GPU acceleration can boost the performance of AI applications. And everyone will learn how to get up and running with an inexpensive 128-core GPU device, the Nvidia Jetson Nano.

2769d4f1f9abeb4dd2438ff636a9e4dc?s=128

Ray Hightower

August 16, 2019
Tweet

Transcript

  1. @RayHightower Nebraska.Code() August 14-16, 2019 Lincoln, NE USA Exploring Parallelism

    w/Raspberry Pi & Jetson Nano
  2. Model 3 Model 2 Model 1

  3. What Why How

  4. Parallelism: Boosting performance by executing at least two threads at

    the same time.
  5. RayHightower.com

  6. None
  7. None
  8. Why parallelism? Because Moore’s Law is running out.

  9. Transistors on a wafer of silicon.

  10. Is this text too small for us to read?

  11. Is this text too small for us to read? Is

    this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read?
  12. Is this text too small for us to read? Is

    text too small for us to read? Is this tex too small for us to read? Is this text too small for us to read? Is this text too sm for us to read? Is this text too small for to read? Is this text too small for us to read? Is this text too small for us to rea Is this text too small for us to read? Is text too small for us to read? Is this tex
  13. ext too small for us to read? Is this text

    too small for us to read? Is this text to mall for us to read? Is this text too small for us to read? Is this text too small s to read? Is this text too small for us to read? Is this text too small for us to ead? Is this text too small for us to read? Is this text too small for us to read? his text too small for us to read? Is this text too small for us to read? Is this te oo small for us to read? Is this text too small for us to read? Is this text too sm or us to read? Is this text too small for us to read? Is this text too small for us ead? Is this text too small for us to read? Is this text too small for us to read? his text too small for us to read? Is this text too small for us to read? Is this te oo small for us to read? Is this text too small for us to read? Is this text too sm or us to read? Is this text too small for us to read? Is this text too small for us ead? Is this text too small for us to read? Is this text too small for us to read? his text too small for us to read? Is this text too small for us to read? Is this te oo small for us to read? Is this text too small for us to read? Is this text too sm or us to read? Is this text too small for us to read? Is this text too small for us ead? Is this text too small for us to read? Is this text too small for us to read? his text too small for us to read? Is this text too small for us to read? Is this te oo small for us to read? Is this text too small for us to read? Is this text too sm
  14. to read? Is this text too small for us to

    read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is
  15. to read? Is this text too small for us to

    read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is Limited by
 Eyesight
  16. Limited by Physics to read? Is this text too small

    for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text to small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for u to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is this text too small for us to read? Is
  17. Parallelism

  18. Concurrency At least two threads are making progress. Parallelism At

    least two threads are executing simultaneously. Oracle Multithreaded Programming Guide http://docs.oracle.com/cd/E19455-01/806-5257/6je9h032b/index.html vs.
  19. Parallelism Keyboard Mouse Disk Time ======> Concurrency Task Switching K

    M D K M D K M D K M D K M D K M D Time ======>
  20. How?

  21. Embarrassingly parallel problem.

  22. Embarrassingly parallel problem. … like finding prime numbers.

  23. None
  24. None
  25. None
  26. ssh-keygen

  27. authorized_keys

  28. RPi01 RPi02 RPi03 RPi04 authorized_keys

  29. None
  30. The cluster works!

  31. None
  32. None
  33. RPi Summary •Assemble the cluster. •Communicate via mpi4py. •Assign a

    portion of the problem to each node. •Gather the results.
  34. What’s next?

  35. Graphical Processing Unit

  36. MacBook Pro Video 384 cores

  37. Raspberry Pi is a gateway for the GPU.

  38. None
  39. None
  40. None
  41. None
  42. None
  43. None
  44. Mapping complicated algorithms to massively parallel hardware architectures is considered

    a non-trivial problem. - Andreas Olofsson, CEO
 Adapteva
  45. Mapping complicated algorithms to massively parallel hardware architectures is considered

    a non-trivial problem. - Andreas Olofsson, CEO
 Adapteva It’s hard.
  46. Mapping complicated algorithms to massively parallel hardware architectures is considered

    a non-trivial problem. - Andreas Olofsson, CEO
 Adapteva It’s hard. And it’s worth it.
  47. Moore’s Law: 2x every 18 months

  48. Moore’s Law for GPUs https://www.nextbigfuture.com/2017/04/for-commoners-using-cpus-meaningful.html Moore Nvidia

  49. # of Nodes Total Render Time Power Cost (5yrs) System

    Cost CPU - Dual Skylake 25 38 hours $70k $250k Nvidia RTX Server 1 6 hours $10k $30k “Pixar artists already rely on Nvidia ray tracing, and RTX more than doubles the performance they will see. We’re excited to use RTX on our upcoming films.” -Steve May, CTO, Pixar From Jensen Huang’s keynote at Nvidia GTC 2019
  50. Nvidia Jetson Nano 128 GPU cores 4 CPU cores

  51. Nvidia Jetson Nano 128 GPU cores 4 CPU cores $99

  52. Nvidia Jetson Nano 128 GPU cores 4 CPU cores $99

  53. None
  54. Compute Unified Device Architecture

  55. CUDA supports Python, Clojure, C, C++, C#, Fortran, Ruby, Java…

  56. None
  57. None
  58. Embarrassingly parallel problem. … deep learning.

  59. None
  60. None
  61. •Training •Testing •Deployment

  62. Avoiding “gotchas” •Lots of data/examples •Labeling. •Randomly choose 20% for

    testing. •Don’t train w/testing data.
  63. Parallelism accelerates deep learning.

  64. None
  65. None
  66. None
  67. Resources

  68. None
  69. https://www.youtube.com/watch?v=aircAruvnKk&list=PLOnWKC1gI_OOIrkRZDq2SgYoDxfRAJtdF&index=66&t=0s Recommended by the Nvidia instructors.

  70. http://alexlenail.me/NN-SVG/index.html

  71. None
  72. None
  73. None
  74. None
  75. Summary… •Parallelism + RPi •Jetson Nano •Deep Learning •Resources

  76. In business, there is nothing more valuable than a technical

    advantage your competitors don’t understand. -Paul Graham http://www.paulgraham.com/avg.html
  77. Thanks! RayHightower.com