Call createCallSetBlockShape before start GPU timer
Update format
Do not check ppcg_scop independence
Remove redundant comment
Fix typo
Create host-end IR to input parameters to kernel function

 + Add setHostIterators.
 + Add clearHostIterators.
 + Add allocateDeviceArguments.
 + Add copyArgumentsToDevice.
Make setHostIterators and clearHostIterators private

Call them from within startGeneration and finishGeneration repectively.
Make name of the kernel function parameters more readable
Implement copy kernel function arguments to device memory
Fix bug: get the correct memory size for memcpy

GPU memcpy size should be array length multiplied with element type size.
Fix comments that demo the usage of the GPURuntime library
Set initial value 0.0 for ElapsedTimes and 0 for ParamOffset
Seperate freeDeviceMemory from cleanupGPUResource

Update GPURuntime library so that we can free multiple device arrays
and parameters.
Fix bug: generate incorrect loads for multiple arrays in kernel