Home › Forum › SOFA › Programming with SOFA › Error into use the LinearSolverConstraintCorrection with SofaCUDA types
Tagged: 64_bits, Linux_ubuntu, Plugin_CUDA, SOFA_1912
- This topic has 8 replies, 4 voices, and was last updated 4 years, 3 months ago by
Arthur.
-
AuthorPosts
-
2 May 2020 at 16:43 #16005
Pasquale94
BlockedHi everyone!
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:19 #16015Hugo
KeymasterHi @pasquale94
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.
Best wishes,
Hugo
4 May 2020 at 22:59 #16018Pasquale94
Blocked4 May 2020 at 23:35 #16019Hugo
KeymasterArgh @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.
Best wishes,
Hugo
5 May 2020 at 12:39 #16024Pasquale94
BlockedThank 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!
Thank you
Pasquale.5 May 2020 at 15:58 #16027Hugo
KeymasterHi @pasquale94,
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.Best,
Hugo
25 July 2020 at 14:27 #16956Owen
BlockedHi @Hugo,
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…
Best,
Owen24 August 2020 at 17:24 #17062Hugo
KeymasterDear @qwe12050
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,
Hugo
10 January 2021 at 20:56 #18170 -
AuthorPosts
- You must be logged in to reply to this topic.