Fabian Schuiki (fschuiki@iis.ee.ethz.ch)


Venue and Organization

 The workshop will take place at the Integrated Systems Lab of ETH Zürich. The address is as follows:

ETZ building
Floor J, Room J64.1
Gloriastrasse 35
8092 Zürich

At the end of the workshop our goal is that everyone be able to run all the programs and scripts, and that everyone is on the same page regarding the hardware. So please if at all possible bring your laptop computer to work on, so we can flesh out issues together during the workshop. Most of the development environment is tailored to Linux/UNIX, so it would be good if you have such a system installed (natively or as a virtual machine), or have access to one via SSH. We can provide you with an account on one of our Linux workstations if needed.



We propose the following session structure. For each session we’ll have an introduction in the form of a few slides and then open up for discussion and hands-on work in order to get everyone onto the same page. We would also like to invite you to a joint social dinner on Monday evening (details will follow).

               Monday, Oct 9
  9:00   Introduction / POWER Cloud / kW Architecture
12:00   Lunch Lunch
13:30   Virtual Platform / PULP Programming Discussions / Wrapup
17:00   — End of Day
19:00  Dinner

            Tuesday, Oct 10
9:00  Infrastructure Sharing / Discussions
12:00  Lunch
13:30  Discussions / Wrapup
17:00  — Flexible End of Workshop


Monday, October 9 

Introduction: Welcome, introduction and overview over the two workshop days, discussion of goals and organization. (Frank Gürkaynak, ETH)

POWER Cloud (Heiner Giefers, IBM): Introduction and tutorial to the POWER cloud hosted at IBM, with access to FPGA accelerator cards.

  • Goal: Everyone can access the cloud provided by IBM, communicate with the accelerator card

kW Architecture (Fabian Schuiki, ETH): The hardware part. All things related to the architecture of the kW demonstrator.

  • Overview of the demonstrator architecture, memory map, communication with host (POWER).
  • Demonstration of what is up and running.
  • Goal: Get everyone up to speed on the hardware architecture, where to attach extensions, memory map.

Virtual Platform (Germain Haugou, ETH): Simulating the hardware without immediate access to a POWER+PULP setup. We’d like to cover the following:

  • Introduction to the virtual platform, toolchain, SDK.
  • Goal: Get the virtual platform setup for everyone, and everyone is able to run a simple program.
  • Goal: Get the SDK set up for everyone, ensure that the compilers work.

PULP Programming (Stefan Mach / Fabian Schuiki, ETH): The software part, i.e. how to write programs for the platform. More specifically, we’d like to discuss and achieve the following:

  • Implementing kernels on a PULP system
  • Memory management and explicit cache handling
  • Communication with peripherals, PULP-internal accelerators
  • Interfacing with the host machine (POWER)
  • Goal: Get everyone up to speed on “how to PULP”.
  • Goal: Everyone can run a simple host program and PULP kernel (on machine, virtual platform, or RTL simulation).

Tuesday, October 10 

Infrastructure Sharing / Discussions / Wrapup: We would like to dedicate the second day to discussions and more hands-on work to ensure we’re all on the same page and to pick up on issues that came up during the previous day.

  • kW Hardware Architecture:
    • Discuss the offloading model.
    • Discuss DRAM integration (TUKL)
    • Goal: Get HW running on QUB machine?
  • Infrastructure Sharing:
    • How can we ensure all partners can develop software for the platform, and have acess to some
      actual POWER+PULP hardware.
    • Discuss how the POWER machines at QUB and ETH fit into the picture.
    • Goal: Establish a plan how to allocate the other machines.

Wrapup: Wrapping up of the workshop, more or less open-end discussions and hacking as needed.