{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Loopy: Reductions\n", "\n", "## Setup code" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "import pyopencl as cl\n", "import pyopencl.array\n", "import pyopencl.clrandom\n", "import loopy as lp" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [], "source": [ "ctx = cl.create_some_context()\n", "queue = cl.CommandQueue(ctx)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "n = 1024\n", "a = cl.clrandom.rand(queue, (n, n), dtype=np.float32)\n", "x = cl.clrandom.rand(queue, (n,), dtype=np.float32)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Capturing matrix-vector multiplication" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [], "source": [ "knl = lp.make_kernel(\n", " \"{[i,k]: 0<=i,k