Strumenti Utente

Strumenti Sito


SKEPU map sample code

#include <iostream>
#define SKEPU_CUDA
#include "skepu/vector.h"
#include "skepu/matrix.h"
#include "skepu/map.h"
using namespace std;
// definition of functions to be used in the map and reduce
UNARY_FUNC(inc,  int, a, return(a+1); )
UNARY_FUNC(dec,  int, a, return(a-1); )
UNARY_FUNC(sq,   int, a, return(a*a); )
BINARY_FUNC(add, int, a, b, return(a+b); )
BINARY_FUNC(sub, int, a, b, return(a-b); )
BINARY_FUNC(mul, int, a, b, return(a*b); )
BINARY_FUNC(div, int, a, b, return(a/b); )
#define N 4
int main()
  // declare vectors 
  skepu::Vector<float> v0(N);
  skepu::Vector<float> v1(N);
  skepu::Vector<float> v2(N);
  // initialize the vector(s) to some meaningful value
  for(int i=0; i<N;i++) {
  cout << "Initial array: " << v0 << endl;  
  // one input map: forall i compute f(v0[i])
  skepu::Map<sq> sqmap(new sq);
  cout << "After sqmap:   " << v2 << endl; 
  // two input map: forall i compute f(v0[i],v1[i])
  // same as: alpha(f) o zip
  skepu::Map<add> mapzip(new add);
  cout << "After mapzip:  " << v2 << endl; 
  return 0;
magistraleinformaticanetworking/spm/skepu-map.txt · Ultima modifica: 28/10/2013 alle 17:30 (6 anni fa) da Marco Danelutto