Announcing MMCL - GPU accelerated MMC with OpenCL

95 views
Skip to first unread message

Qianqian Fang

unread,
Jul 12, 2019, 9:16:20 PM7/12/19
to MCX-...@listserv.neu.edu, mcx-...@googlegroups.com, mmc-...@googlegroups.com, mcx-users, mmc-...@googlegroups.com

Dear colleagues and registered MCX/MMC users,


We are excited to let you know that we are about to release a significantly accelerated Mesh-based Monte Caro (MMC) - MMC-OpenCL (or MMCL for short) to our user community!

We invite all existing MMC/MCX users to test a preview version of this software (including precompiled MMCL binaries and MMCLAB-CL MATLAB mex files). For those of you who are interested in testing our new simulator, please fill out the below short registration form - we are particularly appreciated if you can write a short testimonial regarding how MMC/MCX helps your research:

    http://bit.ly/2XJxmKc

As many of you know, our current MMC simulator only supports CPU based photon simulations. We have been working on a GPU-accelerated MMC over the past year, and completed the major milestone - an OpenCL based MMC - earlier this year. A paper was submitted recently on this work. We will share the full manuscript once it is published.

Similar to MCXCL, the MMCL software supports a wide range of modern CPUs and GPUs made by NVIDIA, AMD and Intel, thanks to OpenCL. The code was carefully developed and optimized, achieving high portability, high speed, and high accuracy.

From the attached screenshot taken from our submitted manuscript, you can see that MMCL performs competitively compared to our previously developed GPU photon simulators (MCX, MCXCL). Overall, MMCL is about 100x-420x faster than a single-thread SSE4-enabled MMC simulation, and 5-70x faster than 8-thread MMC simulations. The outputs of MMCL and MMC are nearly indistinguishable from 4 benchmarks, including both simple and complex domains.

I want to mention that the MMCL software contains a complete copy of the existing SSE-based MMC code (synced with v2019.3). To run CPU-only simulations, one shall set -G -1 in the command line, or cfg.gpuid=-1. If you set gpuid to a positive number, it will use the corresponding OpenCL devices (it can be a CPU device, but using OpenCL instead of the hand-tuned SSE code). Multiple GPUs/CPUs are supported using 01 masks, identical to those supported by MCXCL and MCX (multi-GPU support for NVIDIA GPUs is still under work).

If you see any problem using the software or want to provide feedback, please use our Github site or mailing list (we will also provide tutorials on mmcl in our MCX training workshop next month.)

https://github.com/fangq/mmc/issues
https://groups.google.com/forum/#!forum/mmc-users

also follow us on Twitter!

https://twitter.com/FangQ/status/1149847650914775040

enjoy the new software, happy modeling!


Qianqian

mmcl_speed.png
Reply all
Reply to author
Forward
0 new messages