Skip to content

Conversation

@L30nardoSV
Copy link

@L30nardoSV L30nardoSV commented Oct 19, 2022

About

This PR proposes using oneMKL RNG generators as alternatives RNGs in device code. So far only the generate_single() is employed.

  • By default, the original RNGs are used.
  • To select an oneMKL RNG engine, uncomment the corresponding line in dpcpp/kernels.dp.cpp:
//#define RNG_ONEMKL_MRG32K3A
//#define RNG_ONEMKL_PHILOX4X32X10
//#define RNG_ONEMKL_MCG31M1
//#define RNG_ONEMKL_MCG59

Evaluation on DevCloud Gen9 GPU: docking time (s)

Early-termination enabled

make DEVICE=XeGPU TEST=sw/ad test

SW AD
Original 58.99 45.98
MRG32K3A 65.51 57.89
PHILOX4X32X10 60.58 48.15
MCG31M1 60.09 46.62
MCG59 56.63 47.91

Early-termination disabled

  • make DEVICE=XeGPU
  • ./bin/autodock_xegpu_64wi -ffile ./input/3ce3/derived/3ce3_protein.maps.fld -lfile ./input/3ce3/derived/3ce3_ligand.pdbqt -nrun 20 -ngen 27000 -psize 150 -resnam test -gfpop 0 -A 0 -H 0 -lsmet sw/ad
SW AD
Original 43.07 95.97
MRG32K3A 62.39 112.61
PHILOX4X32X10 44.21 96.93
MCG31M1 43.29 96.74
MCG59 43.38 96.59

Leonardo Solis and others added 29 commits October 12, 2022 16:56
… to kernel code + calling rng <generate_single>.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant