{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Matrix-matrix multiplication by columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now look at how the FLAMEPy API can be used to implement different matrix-matrix multiplication algorithms. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we create some matrices." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "\n", "m = 4\n", "n = 3\n", "k = 5\n", "\n", "C = np.matrix( np.random.random( (m, n) ) )\n", "print( 'C = ' )\n", "print( C )\n", "\n", "Cold = np.matrix( np.zeros( (m,n ) ) )\n", "Cold = np.matrix( np.copy( C ) ) # an alternative way of doing a \"hard\" copy, in this case of a matrix\n", " \n", "A = np.matrix( np.random.random( (m, k) ) )\n", "print( 'A = ' )\n", "print( A )\n", "\n", "B = np.matrix( np.random.random( (k, n) ) )\n", "print( 'B = ' )\n", "print( B )" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "
Gemm_nn_unb_var1( A, B, C )
laff.gemv( trans, alpha, A, x, beta, y )
which computes \n",
"$ y := \\alpha A x + \\beta y $ or $ y := \\alpha A^T x + \\beta y $, depending on \n",
" parameter trans
. In particular, \n",
" laff.gemv( 'No transpose', alpha, A, x, beta, y )
computes $ y := \\alpha A x + \\beta y $.\n",
" laff.gemv( 'Transpose', alpha, A, x, beta, y )
computes $ y := \\alpha A^T x + \\beta y $.\n",
"