Worker doesn't read all images

Out of memory problem after 2 big batches
Accelerate stride copy and matrix mult

Use memory3d copy to do stride copy
Add two parameters to matrixmult to avoid transposing before calling the
function
Merge pad operation and cross communication operation

Add a get_pad_info function to get new shape and slices
Padding when merging multiple pieces of data
Update some test files
Apply new interface in trainer, data provider and layer