Hello guys, I've made advances in my CUDA acceleration project, as you remember i have a CFD model in need of better execution times.
So far i have been able to solve the pressure system in the GPU and the rest in serial, using PETSc only for this pressure solve, the library i got to work was ViennaCL. First question, do i still have to switch installations to use either CUDA library? this was a suggestion before, so in order to use CUSP instead of ViennaCL, for example, i currently have to change installations, is this still the case? Now, i started working in a fully parallelized version of the model, which uses the DMs and DMDAs to distribute the arrays, if i try the same flags as before i get an error saying "Currently only handles ViennaCL matrices" when trying to solve for pressure, i get this is a feature still not implemented? what options do i have to solve pressure, or assign a DMDA array update to be done specifically in a GPU device? I was thinking of using the VecScatterCreateToZero for a regular vector, but then i would have to create a vector and copy the DMDAVec into it, is this accomplished with DMDAVecGetArrayReadF90 and then just copy? do you think this will generate too much overhead? Thanks so much for your input, Manuel