Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add TensorForge [Tracking PR] #1102

Draft
wants to merge 47 commits into
base: master
Choose a base branch
from
Draft

Conversation

davschneller
Copy link
Contributor

@davschneller davschneller commented May 7, 2024

We add TensorForge as a replacement and amalgamate of Yateto, gemmforge and chainforge. As a result, we can then handle tensors (and thus fused simulations etc.)—and we won't need any extra Python packages anymore for GPU support.

A secondary goal (maybe part of a future PR) is to remove the explicity SYCL code (i.e. DR) and move everything into the code generation (including also plasticity etc.)—resulting in (hopefully) simpler code since we can merge the CPU and GPU paths, faster code by merging kernels and reducing the latencies etc., but also simplify the build complexity on Nvidia and AMD systems, except if we want to use SYCL kernels or SYCL as runtime in the background.

A tertiary goal (maybe part of a future PR) is to get rid of the scratchpads (by kernel merging), so that we can play around with scheduling much more.

We also begin to add some basic support for viscoelastic2 and poroelastic on GPUs—note that both kernels still don't work at the moment.

Still WIP, but already with some progress (currently, the codegen is a bit broken still):

  • arbitrary-rank tensor support; minus full reduction
  • (WIP) full reduction support
  • full yateto support. In particular, copy-add scales can be fused, thus possibly superseding Explicit Taylor Sum Kernels #1044 .
  • OMP Target backend (dry-run)
  • (preliminarily done) scalar nonlinear support (dry-run only)
  • implement IR
  • control structure support (ifs etc.)
  • (partially done, WIP) translate DR to codegen
  • compiling viscoelastic2 and poroelastic kernels

(parts of this PR may be spun out)

@codecov-commenter
Copy link

codecov-commenter commented May 8, 2024

Codecov Report

Attention: Patch coverage is 0% with 6 lines in your changes are missing coverage. Please review.

Project coverage is 13.79%. Comparing base (69a99f3) to head (d51d8c5).
Report is 541 commits behind head on master.

Current head d51d8c5 differs from pull request most recent head bc14fa8

Please upload reports for the commit bc14fa8 to get more accurate results.

Files Patch % Lines
src/Equations/elastic/Kernels/Neighbor.cpp 0.00% 4 Missing ⚠️
src/Initializer/GlobalData.cpp 0.00% 2 Missing ⚠️

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1102      +/-   ##
==========================================
- Coverage   14.33%   13.79%   -0.55%     
==========================================
  Files         253      268      +15     
  Lines       14303    15011     +708     
==========================================
+ Hits         2051     2071      +20     
- Misses      12252    12940     +688     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants