Python Programmers have GPUs too - Dejice Jacob (University of Glasgow)

Speaker: Dejice Jacob (University of Glasgow)
Seminar of the Programming Languages and Systems research group

Python is a popular language for end-user software development in many application domains.  End-users want to harness parallel compute resources effectively, by exploiting GPUs.  ALPyNA is an automatic loop parallelisation framework to accelerate Python loop nests in a CPU/GPU environment. Classical dependence analysis techniques are applied to loop parallelisation. Python's introspection capabilities are leveraged to resolve loop bounds, dependences and variable types in a just-in-time manner.The parallel loop nest code is then converted to CUDA kernels for GPU execution.An analytical cost model for auto-parallelising loops is used to predict the quicker execution device in a heterogeneous environment. The cost model must be both staged, to combine compile and run-timeinformation, and lightweight to minimise runtime overhead. GPU execution timeprediction must account for factors like data transfer, block-structured execution, and starvation.  We show that a comparatively simple, staged analytical model can accurately determine during execution when it is profitable to offload a loop nest.doi-1:

homepage plas researchall