GithubHelp home page GithubHelp logo

Comments (9)

sguera avatar sguera commented on July 20, 2024

It also fails with this code:

double a[M][N];
double b[M][N];
double c0;
double c1;
double c2;

for(int j=1; j < M-1; j++){
for(int i=1; i < N-1; i++){
b[j][i] = c0 * a[j][i]
+ c1 * (a[j][i-1] + a[j-1][i] + a[j+1][i] + a[j][i+1])
+ c2 * (a[j-1][i-1] + a[j+1][i-1] + a[j-1][i+1] + a[j+1][i+1])
;
}
}

from kerncraft.

cod3monk avatar cod3monk commented on July 20, 2024

you can resolve this by manually providing the pointer increment via --pointer-increment. For me to investigate this issue further, you will need to provide the generated assembly file.

from kerncraft.

cod3monk avatar cod3monk commented on July 20, 2024

@sguera Have you tried the latest kerncraft version? Did it solve the problem? If not, could you provide the generated assembly file for debugging purposes.

from kerncraft.

sguera avatar sguera commented on July 20, 2024

I just tried for both the codes. I still get the same error with the latest kerncraft.
I attach the 2 assembly files.

2D-5pt-variable.s.txt
2D-5pt-constant.s.txt

from kerncraft.

cod3monk avatar cod3monk commented on July 20, 2024

It is not en error, you can always set the pointer increment manually: for the 2D-5pt-variable code use --pointer-increment 16 and for the 2D-5pt-constant code use --pointer-increment 8.

I will try to tweak the heuristics to also handle the codes you provided, but there will always be cases where it fails an the loop or pointer increment needs to be manually given.

from kerncraft.

sguera avatar sguera commented on July 20, 2024

I understand.. the problem is when we want to use it automatically on all the bouquet of stencils that can be generated through STEMPEL (generate each possible combination + for each code kerncraft analysis + for each code run through PROVA! and then validate)

from kerncraft.

sguera avatar sguera commented on July 20, 2024

For me to understand how to do it (even if not automatically), can you explain or give me a reference in how to identify the correct pointer increment (and then manually specify it?

from kerncraft.

cod3monk avatar cod3monk commented on July 20, 2024

You need to identify the loop in the assembly code. iaca_marker helps here, most of the time the default selection is correct. Then in the assembly you will need to look for the store memory references and identify the increment from one block iteration to the next.

from kerncraft.

cod3monk avatar cod3monk commented on July 20, 2024

The two cases you provided are now recognized automatically, but as said before: there will always be situations where the heuristic fails.

from kerncraft.

Related Issues (20)

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.