Skip to content

Instantly share code, notes, and snippets.

@ChadFulton
Last active August 29, 2015 14:03
Show Gist options
  • Save ChadFulton/dd94a5010f97522f0d0b to your computer and use it in GitHub Desktop.
Save ChadFulton/dd94a5010f97522f0d0b to your computer and use it in GitHub Desktop.
Python vs Cython - Timings
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:d57386f21c51978aab1a770b90d71f347b0835b58ff67823505bd542ab41b053"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Matrix Multiplication - Timings"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%load_ext cythonmagic\n",
"import numpy as np\n",
"from numpy.testing import assert_allclose\n",
"from scipy.linalg.blas import dgemm\n",
"import matplotlib.pyplot as plt"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%cython\n",
"\n",
"# Typical imports\n",
"import numpy as np\n",
"cimport numpy as np\n",
"cimport cython\n",
"\n",
"from blas_lapack cimport dgemm_t\n",
"from scipy.linalg import blas\n",
"\n",
"from cpython cimport PyCObject_AsVoidPtr as Capsule_AsVoidPtr\n",
"\n",
"cdef dgemm_t *dgemm = <dgemm_t*>Capsule_AsVoidPtr(blas.dgemm._cpointer)\n",
"\n",
"cpdef test_cyblas(double [:,::1] A, double [:,::1] B, int reps=1):\n",
" cdef:\n",
" int i\n",
" int m = A.shape[0] # rows of A, C\n",
" int n = B.shape[1] # cols of B, C\n",
" int k = A .shape[1] # cols of A, rows of B\n",
" double alpha = 1.0\n",
" double beta = 0.0\n",
" cdef double [::1,:] C = np.zeros((m,n), order=\"F\")\n",
" \n",
" for i in range(reps):\n",
" dgemm(\"T\", \"T\", &m, &n, &k, &alpha, &A[0,0], &n, &B[0,0], &m, &beta, &C[0,0], &m)\n",
" return np.array(C)\n",
"\n",
"cpdef test_cyblas2(np.ndarray[double, ndim=2, mode=\"c\"] A, np.ndarray[double, ndim=2, mode=\"c\"] B, int reps=1):\n",
" cdef:\n",
" int i\n",
" int m = A.shape[0] # rows of A, C\n",
" int n = B.shape[1] # cols of B, C\n",
" int k = A .shape[1] # cols of A, rows of B\n",
" double alpha = 1.0\n",
" double beta = 0.0\n",
" cdef np.ndarray[double, ndim=2, mode=\"fortran\"] C = np.zeros((m,n), order=\"F\")\n",
" \n",
" for i in range(reps):\n",
" dgemm(\"T\", \"T\", &m, &n, &k, &alpha, <double *> A.data, &n, <double*> B.data, &m, &beta, <double*> C.data, &m)\n",
" return C"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def test_python(A, B, reps=1):\n",
" for i in range(reps-1):\n",
" np.dot(A,B)\n",
" return np.dot(A,B)\n",
"\n",
"def test_pyblas(A, B, reps=1):\n",
" for i in range(reps-1):\n",
" dgemm(1.0, A, B)\n",
" return dgemm(1.0, A, B)\n",
"\n",
"def test_pyblas2(A, B, reps=1):\n",
" A = np.asfortranarray(A)\n",
" B = np.asfortranarray(B)\n",
" for i in range(reps-1):\n",
" dgemm(1.0, A, B)\n",
" return dgemm(1.0, A, B)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def setup(n, reps):\n",
" A = np.eye(n)\n",
" B = np.eye(n)\n",
" \n",
" assert_allclose(test_python(A, B), test_pyblas(A, B))\n",
" assert_allclose(test_python(A, B), test_cyblas(A, B))\n",
" \n",
" assert_allclose(test_python(A, B), test_pyblas2(A, B))\n",
" assert_allclose(test_python(A, B), test_cyblas2(A, B))\n",
" \n",
" return A, B, reps"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 10
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sizes = [2,5,10,20,100]\n",
"functions = {\n",
" 'python': test_python,\n",
" 'python+blas': test_pyblas,\n",
" 'python+blas2': test_pyblas2,\n",
" 'cython+blas': test_cyblas,\n",
" 'cython+blas2': test_cyblas2\n",
"}\n",
"output = {\n",
" 'python': [],\n",
" 'python+blas': [],\n",
" 'python+blas2': [],\n",
" 'cython+blas': [],\n",
" 'cython+blas2': [],\n",
"}\n",
"for size in sizes:\n",
" A, B, reps = setup(size, 1000)\n",
" for name, function in functions.items():\n",
" out = %timeit -qo function(A, B, reps)\n",
" output[name].append(out)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"\n",
"fig, ax = plt.subplots(figsize=(10,5))\n",
"\n",
"names = []\n",
"for name, times in output.items():\n",
" style = '-'\n",
" if name == 'python+blas2': style=':'\n",
" if name == 'cython+blas2': style='--'\n",
" ax.plot([time.best for time in times], style)\n",
"\n",
"ax.xaxis.set_ticks(range(len(sizes)))\n",
"ax.xaxis.set_ticklabels(sizes)\n",
"ax.set_yscale('log')\n",
"\n",
"ax.set(title=\"Matrix Multiplications - Timings\", xlabel=r\"$m$\", ylabel=\"seconds\")\n",
"ax.legend(output.keys(), loc='upper left');"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nB7X9D2paizKWAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x10809c890>"
]
}
],
"prompt_number": 6
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment