Hello, I think now I understand, thank you for the thorough explanation. I will run the code for few steps slowly increasing the number of particles and reporting the runtime per step to see when the scaling becomes linear.
I guess I had not timed the code execution up to now, so removing the runtime visualization might have helped a bit. I indeed was talking about a frame, that is a mistake I make a lot, my apologies for not being clear on this point. Thank you once again for your helpful answers! Yves On Thursday, June 9, 2022 at 11:29:29 PM UTC+3 Ruochun Zhang wrote: > Hi Yves, > > For the question regarding the performance, I am not completely surprised, > because for smaller problems (less than something like 10k particles), > various overheads dominate the runtime (such as the overhead for launching > kernel functions), so the total runtime is probably not sensitive to the > problem size. Only for larger problems it shows a linear scaling. However > on the other hand I do expect *some* time savings if you shrink the problem > size by a factor of 100~1000. If you meant the runtime did not change at > all after you enlarge the particle size by 10 times, then probably you are > somehow completely I/O bound, and it may be related to that you are using > runtime visualization, since host--device communication is a big overhead. > And by the way, 5 minutes for a frame may be possible, but 5 minutes for a > *time step* is not normal, but I assume you meant frame. > > Paraview is a common choice for visualization. If you apply Glyph(sphere) > filter to the particles with correct radius, you will see the particles at > around Z=-10 are hexagonal close-packed and fixed. We use them to represent > a ground that has some geometrical roughness. > > Thank you, > Ruochun > > On Thursday, June 9, 2022 at 10:41:12 AM UTC-5 [email protected] > wrote: > >> It is actually running, just very slowly! >> >> However, I still have some questions. Since as you said my GPU is not the >> most efficient, I modified the JSON file and multiplied the radius of the >> particles by 10. >> It should lower the number of particles by a lot and make the runtime >> visualization feasible. And it does, as the first screenshot shows (still >> not responding as soon as I click on it though...). >> >> However, the time for an iteration is the same as if I did not change the >> radius, meaning that it takes more or less 5 minutes per time step. >> I do not really understand, as I would expect it to be very fast with >> several tens of particles. Do you see a reason for that? >> >> Also, I have been using Paraview for visualization of the particles (is >> it what Chrono users usually use?) and got the result shown on my second >> screenshot. >> What are these points at Z=-10? >> >> Thank you for your support, I really appreciate it. >> >> Yves >> >> On Thursday, June 9, 2022 at 6:23:38 PM UTC+3 Ruochun Zhang wrote: >> >>> It's probably running, you can check if there is an output folder >>> created and if there are output csv files inside it. I usually disable >>> runtime visualization for GPU scripts, it tends to be too large to be done >>> efficiently. For GTX1050 on Windows, I am not sure but maybe several hours' >>> runtime can be expected, if you are to finish the entire demo. >>> >>> Ruochun >>> >>> On Thursday, June 9, 2022 at 9:34:53 AM UTC-5 [email protected] >>> wrote: >>> >>>> Hello, >>>> >>>> I indeed double-clicked. Now, with the Powershell, providing an input >>>> file as argument (exactly what you provided in your answer), it outputs >>>> some text, and creates a windows that freezes instantaneously, and nothing >>>> happens after that (Not responding). >>>> >>>> The output I get is the following: >>>> >>>> Reading parameters: ../data/gpu/demo_GPU_repose.json >>>> --- Parsing JSON --- >>>> params.sphere_radius 0.100000 >>>> params.sphere_density 2.800000 >>>> params.box_X 40.000000 >>>> params.box_Y 40.000000 >>>> params.box_Z 40.000000 >>>> params.time_end 10.000000 >>>> params.grav_X 0.000000 >>>> params.grav_Y 0.000000 >>>> params.grav_Z -980.000000 >>>> params.normalStiffS2S 100000000.000000 >>>> params.normalStiffS2W 100000000.000000 >>>> params.normalStiffS2M 100000000.000000 >>>> params.normalDampS2S 1000000.000000 >>>> params.normalDampS2W 1000000.000000 >>>> params.normalDampS2M 1000000.000000 >>>> params.tangentStiffS2S 100000000.000000 >>>> params.tangentStiffS2W 100000000.000000 >>>> params.tangentStiffS2M 100000000.000000 >>>> params.tangentDampS2S 1000000.000000 >>>> params.tangentDampS2W 1000000.000000 >>>> params.tangentDampS2M 1000000.000000 >>>> params.static_friction_coeffS2S 0.750000 >>>> params.static_friction_coeffS2W 0.750000 >>>> params.static_friction_coeffS2M 0.750000 >>>> params.rolling_friction_coeffS2S 0.000000 >>>> params.rolling_friction_coeffS2W 0.000000 >>>> params.rolling_friction_coeffS2M 0.000000 >>>> params.cohesion_ratio 0.000000 >>>> params.adhesion_ratio_s2w 0.000000 >>>> params.psi_T 32 >>>> params.psi_L 16 >>>> params.output_dir repose >>>> params.write_mode csv >>>> params.step_size 0.000002 >>>> -------------------- >>>> Added 60761 granular material points >>>> Added 45030 fixed (ground) points >>>> In total, added 105791 >>>> Version: 3.3.0 >>>> NVIDIA Corporation : NVIDIA GeForce GTX 1050/PCIe/SSE2 (3.3.0 NVIDIA >>>> 512.96) >>>> >> GLSL: 3.30 NVIDIA via Cg compiler >>>> # of shapes : 1 >>>> 240 240 0 240 >>>> # of shapes : 1 >>>> 26 26 0 36 >>>> # of shapes : 1 >>>> 74 74 0 144 >>>> # of shapes : 1 >>>> 49 49 0 72 >>>> Initialize Viewer : GL_INVALID_ENUM >>>> frame step is 0.0333333 >>>> >>>> >>>> This happens with both Release and Debug, with the exact same output. >>>> I feel I am close to the solution. Is it anything you experienced in >>>> the past? >>>> >>>> Best regards, >>>> Yves >>>> >>>> On Thursday, June 9, 2022 at 4:27:57 PM UTC+3 Ruochun Zhang wrote: >>>> >>>>> Hi Yves, >>>>> >>>>> If you just double-clicked the executable and found the prompt closed >>>>> shortly after launching, then you should instead use a Windows-based >>>>> command line terminal to run them (Powershell?). This will allow you to >>>>> see >>>>> the output/error message. >>>>> >>>>> Remember you'll typically have to supply a JSON file as an input >>>>> argument, something like "*.\demo_GPU_repose.exe demo_GPU_repose.json*". >>>>> You should try that from a terminal. That's the only suggestion I can >>>>> infer >>>>> from your description. >>>>> >>>>> Thank you, >>>>> Ruochun >>>>> >>>>> On Thursday, June 9, 2022 at 4:17:23 AM UTC-5 [email protected] >>>>> wrote: >>>>> >>>>>> Sorry for the multiple messages, but I figured it might be good for >>>>>> you to have access to my build logs. Here is the one with Debug, knowing >>>>>> that I get the same results and output with the Release one. >>>>>> >>>>>> Thanks, >>>>>> Yves >>>>>> >>>>>> On Thursday, June 9, 2022 at 8:57:43 AM UTC+3 Yves Eric Maxime Robert >>>>>> wrote: >>>>>> >>>>>>> Thank you for your answer. >>>>>>> >>>>>>> I have been trying to use WSL for days, but it never worked. So I >>>>>>> proceeded to a clean installation with Windows, following the >>>>>>> instructions >>>>>>> of the website, using the same software (SourceTree, CMake, VS2022). I >>>>>>> installed CUDA as well. >>>>>>> >>>>>>> Here is a zipped folder containing all the advanced CMake >>>>>>> information. >>>>>>> >>>>>>> Thank you for your help, >>>>>>> Yves >>>>>>> >>>>>>> On Thursday, June 9, 2022 at 5:54:06 AM UTC+3 Ruochun Zhang wrote: >>>>>>> >>>>>>>> Hi Yves, >>>>>>>> >>>>>>>> Most likely the environment is the problem and it can be the tricky >>>>>>>> one. You are running on Windows, not WSL, right? Also, maybe you >>>>>>>> should >>>>>>>> show your "Advanced" options so we have an idea about how your CUDA >>>>>>>> environment/paths are set. >>>>>>>> >>>>>>>> Thank you, >>>>>>>> Ruochun >>>>>>>> >>>>>>>> On Wednesday, June 8, 2022 at 12:33:01 PM UTC-5 >>>>>>>> [email protected] wrote: >>>>>>>> >>>>>>>>> Hello, >>>>>>>>> >>>>>>>>> Sorry about that, I must have unchecked the box when taking the >>>>>>>>> screenshot. >>>>>>>>> The compilation has been done with the GPU module, which is why I >>>>>>>>> have access to the GPU demos. >>>>>>>>> >>>>>>>>> Do you have an idea of why it does not work? >>>>>>>>> >>>>>>>>> Thank you, >>>>>>>>> Yves >>>>>>>>> >>>>>>>>> On Wednesday, June 8, 2022 at 7:13:52 PM UTC+3 Ruochun Zhang wrote: >>>>>>>>> >>>>>>>>>> Hi Yves, >>>>>>>>>> >>>>>>>>>> You should enable Chrono::GPU module. It's the GPU-based physics >>>>>>>>>> module and right now it is Chrono's dedicated granular simulator, >>>>>>>>>> those >>>>>>>>>> demos need that. >>>>>>>>>> >>>>>>>>>> Thank you, >>>>>>>>>> Ruochun >>>>>>>>>> >>>>>>>>>> On Wednesday, June 8, 2022 at 9:09:03 AM UTC-5 >>>>>>>>>> [email protected] wrote: >>>>>>>>>> >>>>>>>>>>> Hello everybody, >>>>>>>>>>> >>>>>>>>>>> I am new to Chrono, but would want to run a simulation which >>>>>>>>>>> should be very close to what the repose demo found in Chrono::GPU, >>>>>>>>>>> to the >>>>>>>>>>> exception that I need some recent additions to the code, so I have >>>>>>>>>>> to use >>>>>>>>>>> the feature/GPU branch. So everything that follows is with that >>>>>>>>>>> branch. >>>>>>>>>>> >>>>>>>>>>> I already compiled Chrono following the tutorial for Windows in >>>>>>>>>>> the past and could run several demos. But having now access to a >>>>>>>>>>> NVIDIA >>>>>>>>>>> GPU, I installed CUDA and additional dependencies, and followed the >>>>>>>>>>> instructions again. I saw that OpenGL was important to have to be >>>>>>>>>>> able to >>>>>>>>>>> run this repose demo, so I also compiled it. Here is how my CMake >>>>>>>>>>> window >>>>>>>>>>> looks: >>>>>>>>>>> [image: cmake.png] >>>>>>>>>>> It got built well on VS2022, with all succeeded and 1 skipped. >>>>>>>>>>> >>>>>>>>>>> With that, I can run all demos with their executables (IRR, >>>>>>>>>>> Postprocess, ...), except for the GPU ones. The ball drop one shows >>>>>>>>>>> a >>>>>>>>>>> terminal with values and outputs files, and that's the only one. >>>>>>>>>>> The rest >>>>>>>>>>> just crashes with no output as soon as I click on the executable. >>>>>>>>>>> >>>>>>>>>>> My guess was that I do not have the granular module enabled, and >>>>>>>>>>> from the documentation I need that. However, I cannot find it, and >>>>>>>>>>> cannot >>>>>>>>>>> find how to install it. >>>>>>>>>>> >>>>>>>>>>> Could you please help me figure that out? >>>>>>>>>>> >>>>>>>>>>> Thank you, >>>>>>>>>>> Yves >>>>>>>>>>> >>>>>>>>>> -- You received this message because you are subscribed to the Google Groups "ProjectChrono" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/projectchrono/5f81a800-6920-493a-be06-6f6b1dfbe0bfn%40googlegroups.com.
