← Back to team overview

yade-users team mailing list archive

Re: [Question #228175]: Accelerate the simulation with CUDA

 

Question #228175 on Yade changed:
https://answers.launchpad.net/yade/+question/228175

Bruno Chareyre proposed the following answer:
Hi Ocean,

1/ It should be feasible, especially if we speak of contact detection, as this is a relatively independant part (input: positions, output: potential interactions). Note however that it is maybe not the most expensive part of the calculation, especially if we speak of dense quasistatic problems. Did you measure times with O.timingEnabled to get an idea?
For the workload, it really depends on your current skills. Did you ever program in CUDA? Do you know the existing methods of contact detection. I would say maybe between a few weeks and  one month to get a working GPU-based collider for a reasonably experienced programmer.


2/ it is object oriented and relatively well suited for developping new stuff. If you write a new collider class, you can plug it in a simulation instead of InsertionSortCollider.

3/ Yes, that's the idea, you would only write a new class, inheriting
from Collider and reproducing the behavior of InsertionSortCollider with
different algorithms
(https://github.com/yade/trunk/blob/master/pkg/common/InsertionSortCollider.hpp)

Some more general comments:
- A key question is how much speedup can be gained. Hard to tell before really trying.
- CUDA is not the only way to go. You could imagine parallel collider on CPU which could also be faster than now, easier to implement and less hardware dependant than GPU
- there a few open source libraries around (*) for contact detection on GPU, it is probably easier and it will also result in more performance to use one of them than wrtiting something from scratch
- For continuing such discussion I suggest the yade-dev mailing list

Bruno

(*) http://bulletphysics.org/wordpress/

-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.