Change Log

== MCX 0.9.9 (Eternity) branch, FangQ <q.fang at neu.edu> ==

 2020-08-28 [2ef3ee7] sync mcxlabcl with mcxlab
 2020-08-28 [89df0be] patch mcxcl for fangq/mcx#101
 2020-08-24 [9306ba3] massive documentation update for v0.9.8 release
 2020-08-18 [e76d67f] add automated valgrind testing
 2020-08-18 [dcbf360] add pocl for ubuntu 18.04
 2020-08-18 [acc6783] update ubuntu 20.04 pocl package name
 2020-08-18 [6db02a4] add ubuntu 20.04 target with pocl and testing
 2020-08-17 [9c90d06] fix typo
 2020-08-17 [4e95e18] add -O3 for zmat units
 2020-08-17 [265ef1f] remove type casting warning on the mac
 2020-08-17 [670f783] add back the accidentally removed MATLAB_MEX_FILE flag
 2020-08-17 [0bf5063] finetune valgrind and cuda-memcheck test
 2020-08-17 [3973557] bind -j to --json, add help info, update examples
 2020-08-17 [2a5a54e] add valgrind and cuda-memcheck test
 2020-08-17 [656815d] fix regression introduced in @80861754 in handling --shapes
 2020-08-16*[acb8280] allow testing script to work on mac
 2020-08-16 [c752642] return total and absorbed energy when -S 0 and -U 0 is used
 2020-08-16 [e872b58] add sphshell benchmark - see GPU MMC paper
 2020-08-16*[64cf701] sync bc detector support via --bc 7-12 chars,disable group load balance
 2020-08-15 [9997a28] remove warnings from gcc 9.3
 2020-08-15*[3b3f224] add --json option, sync with mcx
 2020-08-15*[d893be3] sync with mcxcontest.pl in mcx
 2020-08-12 [8c96656] fix incorrect srcparam brackets
 2020-08-12 [dbc12eb] add group load balance into default option
 2020-08-12 [6ba4d97] use run-time compilation macro to replace const mem, gain 16% speedup
 2020-08-08 [761dcbc] handle record-breaking benchmark results
 2020-08-08 [12f7961] fix nvidia gpu core count, sync from mcx
 2020-08-08 [e6873a9] fix do_reflect macro testing
 2020-08-08 [4e3deda] speedup updateproperty via using macros
 2020-08-08*[c1e3ebb] merge with nvidiaomp branch, support multi NVIDIA GPUs
 2020-08-05 [a024fa4] add -L and save workload
 2020-08-05 [60622d6] update help info
 2020-08-04 [1c431bb] fix -n/G/W flags
 2020-08-04 [34ed2a5] sync with mcx script
 2020-08-04*[d0a73cf] fix double scaling for pattern/pattern3d source, like fangq/mcx@c04bff5
 2020-08-03 [fd0e0ec] debug on the mac
 2020-08-03 [7d85545] switch json to JSON::PP in the core
 2020-08-03*[3c110b2] standalone mcxcl benchmark and speed contest script
 2020-07-28 [34ab8cb] fix 0 global memory on AMD GPUs, regression of 67576f6, #40
 2020-07-25 [967e9e6] enable testing on mac
 2020-07-25 [3f41350] testmcx.sh accepts additional param
 2020-07-25 [23dc45a] linux target add pocl
 2020-07-24 [b8b6a24] build mcxlabcl octave mex on linux targets
 2020-07-24 [1c61c8d] add msys shell for travis
 2020-07-24 [ab6155f] try to use mingw32-make
 2020-07-22*[c838d58] add travis ci script
 2020-07-22 [36e0e9e] match test script symbols
 2020-07-22 [cb3f3ac] remove --verbose, set to --version to match mcx
 2020-07-05 [2e52966] fix nightly build issues
 2020-06-27 [21bebc6] fix all ubj warnings
 2020-05-03 [4b59557] add the missing header file, finish #37
 2020-05-03*[d2501dc] sync with mcx to support JData/JNIfTI output and --bench, close #37
 2020-04-06 [da59c72] remove mingw64 compilation warnings
 2020-04-05 [39a8341] update help info for buildmcxcl.m
 2020-04-05 [1903818] make creating octave mex file work again
 2020-04-04 [7ac3b56] use the correct macro on windows
 2020-04-04 [7911b02] fix cygwin binary library entry point error
 2020-04-04 [199f708] simplify makefile
 2020-04-03 [388e1a1] use default msys2 root folder
 2020-04-03 [c7f0eda] update help info, flush output
 2020-04-03 [ee807d9] flush output in octave, fix error in octave mex
 2020-04-03 [3d768fa] fix compilation on linux
 2020-04-03 [f989f37] compile both binary and mex on windows
 2020-04-03 [7d3bc69] update makefile to compile on msys2
 2020-04-03 [67576f6] fix warnings for gcc 8 and 9.3, compiles windows mex file
 2020-04-02 [e5f2881] migrate windows compilation to msys2
 2020-03-29 [f1fcd01] sync with mmc to stay compatible with MS VS
 2020-03-20 [e855627] define a background grid if dim.x/y/z is defined
 2020-02-05 [5868f95] fix one warning of the cl kernel
 2020-02-05 [1388f7d] remove all warnings from gcc 7
 2020-02-05 [2a2116a] update cjson to the latest git version
 2019-11-21 [ff9e097] Updated and renamed readme.txt to readme.md
 2019-10-18 [10cac7b] fixing optical property initialization for continuously varying mua; add missing input file for digimouse demo
 2019-08-03 [96eaba7] apple cpu special config
 2019-08-02 [a54cb6e] fix missing dosaveref field, swap incorrect short flag
 2019-08-02 [9186f25] test to see if progress bar is supported
 2019-08-01 [01efe5e] enable reflection when bc contains r/m/c/_
 2019-08-01 [22e84b4] deal with device names without vendor, like Titan V
 2019-08-01 [ee67942] use kernel event to terminate progress bar, set workgroup size to 1 on Mac
 2019-07-31 [61eb317] use finer progress bar on cpu hosts
 2019-07-30 [a432ee0] fix typo to enable a set of new flags
 2019-07-29*[93b3d0c] fix voxel [0 0 0] is always zero bug, same as https://github.com/fangq/mcx/commit/63e5e2360b8cce35dfba4f8f3f2591c0bc4513bc
 2019-07-26 [40f79d9] linking with cuda opencl.lib on windows
 2019-07-26 [eedf008] do not print progress bar by default, still causing hanging on certain gpu
 2019-07-26 [881ae8c] fix JIT errors on the mac
 2019-07-25 [4b3a58f] make kernel compatible with older opencl libraries
 2019-07-25 [7f61afd] sync mcxlab with mcxlabcl
 2019-07-25 [e523747] set printing progress as default
 2019-07-25 [fa246b4] fix two GPU progress bar error
 2019-07-25 [c8b8b24] fix cyclic boundary condition
 2019-07-24*[898c1f3] fix sharing demo
 2019-07-24 [7fc5669] update output deposit and print info. for sharing
 2019-07-24 [071e1a4] fix wrong pattern number index for single pattern illumination
 2019-07-24 [b64a562] match anistropy change to that of mcx
 2019-07-24 [2001c19] fix fluence/energy output deposit and add one register pathlen to accumulate photon partial pathlengths that fall in the same voxel
 2019-07-22 [e87220d] partial sync with mcx_utils.c from mcx-cuda
 2019-07-22 [0e6f8a9] fixing compatibility issues when running mcxlab srctype tests
 2019-07-22 [9fac24d] port mcx replay patch
 2019-07-22*[2894ea1] progress bar finally works on NVIDIA, thanks to Robert Crovella@NVIDIA http://bit.ly/2XY0IVb
 2019-07-22 [2863ae3] partially fix some compatability issues to run mcxlab samples
 2019-07-21*[f242201] add replay support
 2019-07-19 [53bcd77] use float byte alignment
 2019-07-19 [136f3bf] align local memory buffer to 8-byte-alignment to avoid CL_INVALID_COMMAND_QUEUE error
 2019-07-19 [c0d0c9a] use cl_ulong to define 64bit integers
 2019-07-19*[fbfe876] add -m -q and -V options, but shared mem is not working
 2019-07-17*[490c215] now mcxcl can save trajectories
 2019-07-17 [2257db0] ported --gscatter option
 2019-07-17*[53cb0e7] massive update - ported bc, multibyte and savedetflag, 2d to from mcx to mcxcl
 2019-07-17 [ff58c0c] fix type-punning warning
 2019-07-17 [412f801] partially sync with mcx
 2019-07-16*[969907e] add colin27 example from mcx
 2019-07-16 [fc6ff40] sync with mcx's helper functions
 2019-06-08 [d5cac7d] fix excess buffer release and add missing one
 2019-05-31 [0fe7813] remove un-needed -k parameter from samples
 2019-03-20 [a6d38d4] fix empty string test

== MCX 0.9 (Eternity - beta) branch, FangQ <q.fang at neu.edu> ==

 2019-03-16 [1ce5240] update installation guide
 2019-03-13 [7d6c192] update documentation for internalsrc flag
 2019-03-13 [80db60f] print gpuinfo inside matlab
 2019-03-13 [5465b99] support internalsrc flag in mcxlabcl
 2019-03-13 [50485bd] remove skipvoid when the source is inside, improve AMD GPU speed by 2-3x
 2019-03-13 [4853da3] avoid crashing matlab when mixing devices from different platforms
 2019-03-12 [c0e8da7] set default optlevel to 1
 2019-03-05 [079604d] demote the optimization level to 1
 2019-03-05 [35d5797] fix compilation error on amdgpu-pro drivers 16.60
 2019-03-04 [8f78960] fix runtime calculation in mcxlabcl
 2019-03-03 [f748e74] add color to the command line output
 2019-03-02 [3cc2b49] fix bugs for isotropic source, cone source, add gpubenchmark script
 2019-03-02 [d784bc6] avoid gcc warning,test xxd utility and add vim-common dependency
 2019-03-02 [7450c87] add all mcx matlab functions, update mcxlabcl help, fix mcxlabcl compilation bug
 2019-03-01 [8c3f16b] fix bug to read srcparam from json
 2019-03-01 [6e916cb] sync mcxcl with mcx 2019.2
 2019-02-28 [3c6f928] sync mcx updates, add colin27, digimouse and usc19-5 examples
 2019-01-29 [9652224] fix dimtype definition; copy from a fix made in mmclab
 2019-01-27 [75a258f] change lib path to link with cuda
 2019-01-18 [60aab29] fix mmclab crash due to racing in multi-thread, similar to mcx issue #60
 2018-11-21 [5a3d058] fix skinvessel json input file
 2018-11-21 [bd9db4c] update the launch position in skinvessel benchmark
 2018-11-14 [aed9038] add benchmark from mcxyz skinvessel example
 2018-11-13 [0f3611c] test if gpuid is 0 to avoid mcxlab crashing
 2018-09-27 [0d7e54b] give a warning and avoid crash for unsupported debug flags, fix #46
 2018-09-15 [2567fd3] Merge branch 'master' of https://github.com/fangq/mcxcl
 2018-09-15 [51e8c97] launchphoton supports half precision
 2018-09-01 [d316023] add nightly build script for mcxcl

== MCX 0.8 (Duality) beta branch, FangQ <q.fang at neu.edu> ==

 2018-08-18 [6ca494c] avoid static linking libm to work with gcc 5.4
 2018-08-16*[939ee95] fix floating point accummulation error, port from mcx #41
 2018-03-29 [966455f] changes to compile mcxcl.mex using mingw64 g++ on Windows
 2018-03-25 [5a1b812] port saveref from mcx to save diffuse reflectance
 2018-03-24 [ed508fa] port mcx saveexit flag to mcxcl
 2018-03-24 [e08f2f7] support nii output format
 2018-03-23*[2111a47] accept full json input in the command line
 2018-03-22 [57defd5] fix detection bug, use --debug, read focal len, update help info
 2018-03-20 [24bf3b3] update makefile for windows
 2018-03-19 [be5ebba] use non-blocking buffer mapping,remove get_local_size
 2018-03-18*[ad29b2a] port progress bar from mcx, but not yet working
 2018-03-18 [85d6d5c] compile mcxlabcl on linux and mac
 2018-03-17*[9ad1ad5] unify mcxlab and mcxlabcl
 2018-03-17 [fc59b7d] initial port of mcxlab to mcxcl - mcxlabcl for matlab and octave
 2018-02-22 [9e62ac3] separate compilation for amd and nvidia
 2018-02-16 [5b73ba6] fix crash for widefield source, fix bug for initial scattering
 2018-02-13*[8a53b17] initial port of complex source support from mcx, skipvoid gives segfault if source is outside, need debug
 2018-02-08*[88d9d4b] define default cl program
 2018-01-29 [d7a1a2f] add optlevel, update main reference
 2017-11-22 [68a1557] accept -G integer to specify GPU, like mcx
 2017-11-22 [ba0e780] fix nextafter for half, add nextafter test kernel
 2017-11-19*[0c11f79] add half precision raytracer, support AMD Vega
 2017-10-30 [a031aae] incorporate Leiming's workgroup load-balancing,simulate exact photon number
 2017-10-28 [5fbf6cf] use 2560 items per sm based on Leiming's test
 2017-10-28 [a188f8e] hand tune AMD autothread number
 2017-10-26 [f3a53f4] add MCX_SIMPLIFY_BRANCH flag to reduce thread divergence
 2017-10-25 [86956ce] avoid overloading major and minor flags for AMD device, use vendor tag
 2017-10-22 [2f23726] set autothread on Intel GPU
 2017-10-22 [bf8fec4] tune persistent mode on Intel GPU,remove warning
 2017-10-09*[c030366] absorb all variations in the paper in one version, switch by flags
 2017-08-03*[8b237f4] mcxcl doc update
 2017-08-03 [6e52e32] compile mcxcl on windows, remove mcxstudio
 2017-07-30 [8fc3698] ported some of the latest features from mcx - integer media,savenii,mcxstudio flags
 2017-01-26 [aef375d] Revert "optimize photon workload at work-group level"
 2016-08-27 [135dc82] change clWaitForEvents to clFinish to avoid hanging
 2016-08-24 [0e3865b] update core count for GP104
 2016-08-23 [d76f626] support autopilot on AMD devices
 2016-08-22 [c28fe99] fix core counts for Pascal
 2016-08-22 [6c1cdc1] add speed benchmark
 2016-08-22 [6b0fffa] port JSON input support from MCX to MCXCL
 2016-08-19 [188c5d5] add autopilot mode, determine SM count using nvidia CL extension
 2016-08-16 [0d7bece] set xorshift128+ RNG as default
 2016-03-21 [1a49986] enable posix erand48 with cl_khr_fp64 extension
 2016-03-15 [133b242] make mcxcl run on Intel HD graphics
 2016-02-15 [5370ef0] port major mcx updates to mcxcl - hitgrid, normalization, detection, reflection handling etc
 2014-10-03 [d732ce9] fix critical bugs found in MCX 0.9.7-2 or earlier releases
