Previous Peformances tests |
Parent Peformances tests |
Outline | Next Sgemm with our intrinsics implementation |
Now, let's write the sgemmNumpyPython.py file :
We need also to import several packages :
1 2 3 |
import sys import numpy as np import astericshpc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
def getTimeFunctionSize(nbRepetition, nbElement): matX = np.asarray(np.random.random((nbElement, nbElement)), dtype=np.float32) matY = np.asarray(np.random.random((nbElement, nbElement)), dtype=np.float32) matRes = np.zeros((nbElement,nbElement), dtype=np.float32) timeBegin = astericshpc.rdtsc() for i in range(0, nbRepetition): np.matmul(matX, matY, matRes) timeEnd = astericshpc.rdtsc() elapsedTime = float(timeEnd - timeBegin)/float(nbRepetition) elapsedTimePerElement = elapsedTime/float(nbElement*nbElement) print("nbElement =",nbElement,", elapsedTimePerElement =",elapsedTimePerElement,"cy/el",", elapsedTime =",elapsedTime,"cy") print(str(nbElement) + "\t" + str(elapsedTimePerElement) + "\t" + str(elapsedTime),file=sys.stderr) |
1 2 3 |
def makeElapsedTimeValue(listSize, nbRepetition): for val in listSize: getTimeFunctionSize(nbRepetition, val) |
1 2 3 4 5 6 7 8 9 10 11 |
if __name__ == "__main__": listSize = [ 10, 16, 24, 32, 40, 56, 80, 90, 104] makeElapsedTimeValue(listSize, 1000000) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
''' Auteur : Pierre Aubert Mail : aubertp7@gmail.com Licence : CeCILL-C ''' import sys import numpy as np import astericshpc def getTimeFunctionSize(nbRepetition, nbElement): matX = np.asarray(np.random.random((nbElement, nbElement)), dtype=np.float32) matY = np.asarray(np.random.random((nbElement, nbElement)), dtype=np.float32) matRes = np.zeros((nbElement,nbElement), dtype=np.float32) timeBegin = astericshpc.rdtsc() for i in range(0, nbRepetition): np.matmul(matX, matY, matRes) timeEnd = astericshpc.rdtsc() elapsedTime = float(timeEnd - timeBegin)/float(nbRepetition) elapsedTimePerElement = elapsedTime/float(nbElement*nbElement) print("nbElement =",nbElement,", elapsedTimePerElement =",elapsedTimePerElement,"cy/el",", elapsedTime =",elapsedTime,"cy") print(str(nbElement) + "\t" + str(elapsedTimePerElement) + "\t" + str(elapsedTime),file=sys.stderr) def makeElapsedTimeValue(listSize, nbRepetition): for val in listSize: getTimeFunctionSize(nbRepetition, val) if __name__ == "__main__": listSize = [ 10, 16, 24, 32, 40, 56, 80, 90, 104] makeElapsedTimeValue(listSize, 1000000) |
Previous Peformances tests |
Parent Peformances tests |
Outline | Next Sgemm with our intrinsics implementation |