Code Monkey home page Code Monkey logo

homp's People

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

homp's Issues

copy all data at once and then to distribute loops

For some applications, we can simply copy all the possible data to a device at once, and then perform distribution of loops for load balance. This should well for iterative loops (e.g. block matching) in that all data (the two images) will be read.

Even if there are data that will be written by the loop body, our runtime should keep record on which data region(map) is updated by each device and then they copy back all the written data to the host.

copy all data at once and then to distribute loops

For some applications, we can simply copy all the possible data to a device at once, and then perform distribution of loops for load balance. This should well for iterative loops (e.g. block matching) in that all data (the two images) will be read.

Even if there are data that will be written by the loop body, our runtime should keep record on which data region(map) is updated by each device and then they copy back all the written data to the host.

CUTOFF not working for stencil2d

In CUTOFF, when one dev is turned off for offloading, it does not involve in data exchange which requires inter-dev barrier operations, thus there is deadlock.

Not sure what is the easiest way to fix at this moment

Add a ratio parameter to the ALIGN policy

For the following example, we will need to add a ratio (2) in the align policy to align array x to y
int y[n];
int x[2*n];

map(from:y distribute(BLOCK)) map(to: distribute(ALIGN(y, 2)))
for (i=0;i<n;i++) {
y[i] = x[2*i]
}

Optimize halo-region exchange for shared data map

Currently, halo-region exchange will do copy of the halo region even in shared data maps, which is actually not needed. We should have the runtime to detect the kinds of maps are and decide whether a actually memcpy should be called or not. This could be done in omp_map_malloc and/or omp_halo_region_pull functions.

Three kinds of distribution policy

  1. one time decision making of loop distribution: BLOCK and MODEL_AUTO
  2. two times decision making of loop distribution: MODEL_PROFILE_AUTO, SCHED_PROFILE_AUTO.
    In these two policies, distribute a small amount of chunks first, profile it and then distribute the rest
  3. Multiple times decision making of loop distribution: SCHED_DYNAMIC, SCHED_GUIDED

Currently we use a single map object to keep track of data that are distributed in those policies that need more than one decision making. One alternative is to create and use a new map each time we need to distribute data or loop.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.