2 May 2020 at 16 h 43 min #16005
I am using the SoftRobots plugin to simulate a pneumatic soft robot, but, I am working with large mesh files so I want to speed up the computation using the parallel-computing with SofaCuda. But I have a problem with Cuda Types, because seems that not all the commands supports the Cuda Types. An example is the command LinearSolverConstraintCorrection, the error is like:
[ERROR] [PythonScript] RuntimeError: Unable to create 'LinearSolverConstraintCorrection' of type 'LinearSolverConstraintCorrection' in node 'finger'. Object type LinearSolverConstraintCorrection<> was not created The object is in the factory but cannot be created. Requested template: (CudaVec3f) Available templates: Rigid3d, Vec1d, Vec2d, Vec3d,
so it seems that this command,is not updated with the Cuda types.
Another strange thing happens when I want to use the type CudaVec3d:
[ERROR] [PythonScript] RuntimeError: Unable to create 'BarycentricMapping' of type 'BarycentricMapping' in node 'cavity'. Object type BarycentricMapping<Vec3d,Vec3d> was not created The object is in the factory but cannot be created. Requested template: Vec3d,Vec3d() Available templates: CudaVec3f,CudaVec3f, CudaVec3f,CudaVec3f1, CudaVec3f,Rigid3d, CudaVec3f,Vec3d, CudaVec3f1,CudaVec3f, CudaVec3f1,CudaVec3f1, CudaVec3f1,Vec3d, Vec3d,CudaVec3f, Vec3d,CudaVec3f1, Vec3d,Rigid3d, Vec3d,Vec3d,
So it seems that the command Barycentric Mapping, doesn’t support, the ‘CudaVec3D’ Type.
How can I resolve these problems?
Thank you very much!4 May 2020 at 22 h 19 min #16015
Sorry for the delayed reply.
This is due to the fact that the constraint resolution has no CUDA version (CudaVec instantiation) in the open-source version of SOFA. However, it does exist in some private plugins.
I am campaigning for a release in open-source of this part as well. But I have not succeeded yet. Let me try to chat with researchers about this (I will have a meeting next week with them) and get back to you.
Hugo4 May 2020 at 22 h 59 min #160184 May 2020 at 23 h 35 min #16019
Argh @pasquale94, I am sorry you are using several plugins (OpenCL) which have not been updated for some time. It’s actually the case for the HighOrder plugin, but I can surely help on this one.
I can try to clone its latest version with the latest SOFA version and make an update. But I might not have the time right in the coming days. Otherwise I could guide you.
Hugo5 May 2020 at 12 h 39 min #16024
Thank you very much @Hugo , My project consist into control a soft robot with Sofa, and I need, for large mesh, to use the SofaCuda plugin for the parallel computing. Does the HighOrder plugins supports Cuda VecTypes?
If you need help in the coding and fixing of this plugin, let me know, I could help!
Pasquale.5 May 2020 at 15 h 58 min #16027
I am pretty sure there is no Cuda compatibility within the HighOrder plugin.
I will let you know when I can start the refreshing of the plugin.
Hugo25 July 2020 at 14 h 27 min #16956OwenParticipant
- Oxford Uni.
Sadly, I am experiencing the same problem described in this post. As you mentioned earlier ‘This is due to the fact that the constraint resolution has no CUDA version (CudaVec instantiation) in the open-source version of SOFA. However, it does exist in some private plugins.’, do you refer to the SOFA Multicore-GPU plugin? If so, I think I will need to apply for access in order to continue what I am doing…
Owen24 August 2020 at 17 h 24 min #17062
The GPU version of the LinearSolverConstraintCorrection is available in a private plugin. This plugin is not the “Multicore-GPU” plugin but the “sofaCudaSolver” plugin.
FYI, the plugin called Multicore-GPU includes a TaskScheduler allowing multithreading. It results from the work of an independent developer. This development also makes possible to dedicated one thread to GPU computing. It is therefore a mix between multithreading and GPU computing.
I am currently in discussion for making more of these GPU codes (sofaCudaSolver) open. I will keep you posted. Best,
Hugo10 January 2021 at 20 h 56 min #18170
- You must be logged in to reply to this topic.