Closed semi-h closed 11 months ago
So as of now with the latest commit, the cuda backend that extends base backend also compiles (however extremely simplified and basically does nothing inside). Also, we have a time integrator that executes the algorithm within its subroutine called 'run'. All this is managed in the main file xcompact.f90, which is ultimately used for creating an executable.
The issue I noticed at this level is that our allocator is not advanced enough to deal with different nx, ny, nz. To fix this I need to introduce a simple functionality in the allocator using the 'bounds remapping' introduced in fortran 2003. I have already used this 'bounds remapping' technique with the nvidia compiler and gfortran and haven't got any issues.
I fixed the issue I mentioned on Monday about kernels not being executed. Now the transport equation runs in the backend structure.
Next few days I'll work on separating a solver class from backend class and then the PR be ready to merge.
~First commit to showcase the backend structure in the new framework. It's possible that this won't compile, but it demonstrates the main idea.~
Subsequent commits added a lot of functionality to the codebase and we can run the transport equation on the CUDA backend now.