The Dot Product Program Revisited

Did you try and fix the Dot Product program from the last post? How successful were you? As you get used to Epiphany programs, it will get easier to debug and write your own. For now, it’s best that whenever you write your own programs, you always start from an existing Epiphany program and slowly make changes. Recall that we want to calculate the sum of products of two vectors containing the elements between 0..N-1, for some value of N (Assume N is a power of 2, and N >= 16. To do this, we make the following observations: The...   read more

10 Jun 2015 | parallella, epiphany

The Dot Product Program

Now that we have covered a basic Epiphany program, we will go on to a more complex example that executes in Parallel. This program can be found in the epiphany-examples/apps/dotproduct/ directory on your Parallella board. Before we start discussing the code, let’s discuss the problem. Calculating Dot Product in Parallel The dot product between two arrays is the sum of the products. Consider the arrays A=[1,2,3] and B=[4,5,6]. The dot product of these two arrays is 1x4 + 2x5 + 3x6 = 4+10+18 = 32. A C implementation of this example follows: int main(){ int a[3] = {1,2,3}; int b[3]...   read more

09 Jun 2015 | parallella, epiphany

Hello Epiphany

In this post, I’m going to walk you through Epiphany’s hello world program, which can be found in the epiphany-examples/apps/hello-world directory. I strongly encourage you to see my previous post about the Epiphany architecture to assist you with your understanding of the material in this post. I will assume you understand Epiphany’s basic memory model and architecture. This post was adapted from my slides and lecture notes that I used to teach my students during the Epiphany unit we had this past semester. This post summarizes the second lesson in the unit. Epiphany programming model Yes, the Parallella people did...   read more

03 Jun 2015 | parallella, epiphany

Overview of Epiphany Architecture

In this post, I’m going to give you an overview of the Epiphany co-processor architecture, including the motivations for a co-processors and hardware accelerators, what sets co-processors apart, and then the details of the Epiphany co-processor. While you may think that this post is not as important as the future posts that will walk you through how to run programs on the Epiphany chip, I urge you not to skip it. Understanding the architecture of any machine is crucial for properly programming it. Skip this post at your own risk. This post was adapted from my slides and lecture notes...   read more

02 Jun 2015 | parallella, epiphany

Running our first Epiphany Program

Before we get into the nitty gritty of programming the Epiphany architecture, we are going to do a quick demo and benchmarking study to illustrate how to use it. For the purposes of this demo (and cluster demo that will be posted later), we will be concentrating on the Epiphany implementation of John the Ripper, which was contributed by Katja Malvoni, and is accessible under the parallella-examples/john subdirectory on your Parallella board, or through the parallela-examples Git repository. What is John the Ripper? John the Ripper (JtR, or John) is a popular password cracking tool that can be used to...   read more

01 Jun 2015 | parallella, epiphany
GitHub projects
Related Links