主要内容

pagefun

对分布式阵列或gpuArray的每个页面应用函数

描述

一个= pagefun (有趣的B指定的函数有趣的到分布式阵列或gpuArray的每一页B.结果一个包含每一页的结果这样(:,:, I, J,…)=乐趣(B (:,:, I, J,…))一个是分布式阵列或GPUARRAY,具体取决于阵列类型B有趣的是接受二维输入参数的函数的句柄。

例子

一个= pagefun (有趣的B1,…,Bn评估有趣的使用数组的页B1,…,Bn作为输入参数,并启用标量展开。任何标量的输入页面维度都会被复制,以匹配该维度中的其他数组的大小,以便(:,:, I, J,…)=乐趣(B1 (:,:, I, J ,...),..., J Bn(:,:,我,…)).输入页面B (:,:, I, J ,...),..., J Bn(:,:,我,…),必须满足的所有输入要求有趣的

如果您计划拨打几个电话pagefun,更有效的方法是首先将该数组转换为分布式数组或gpuArray。

A1,…,) = pagefun (有趣的___返回多个输出数组A1,…,当这个函数有趣的返回输出值。pagefun调用有趣的每次都有和调用一样多的输出pagefun,也就是说,次了。如果你叫pagefun具有比支持更多的输出参数金宝app有趣的, MATLAB®生成一个错误。有趣的是否可以返回具有不同数据类型的输出参数,但每次输出的数据类型必须相同有趣的被称为。

例子

全部折叠

这个例子展示了如何使用pagefun应用mtimes函数设置为两个GPU阵列的每一页,BC

创建两个GPU阵列,BC

M = 3;%输出行数k = 6;矩阵乘以内维数N = 2;%输出列数P1 = 10;首页维度的%大小p2 = 17;第二页维数的%大小P3 = 4;第三个页面维度的大小P4 = 12;第四页尺寸的百分比=兰德(P3 M, K, P1, 1日,“gpuArray”);B =兰特(K, N, 1, P2、P3, P4,“gpuArray”);

调用pagefun应用mtimes函数返回这两个数组的每一页。

C = pagefun (@mtimes, A, B);s =大小(C)% M-by-N-by-P1-by-P2-by-P3-by-P4
S = 3 2 10 17 4 12

该代码显示了另一个类似的用例pagefun函数。

M = 300;%输出行数K = 500;矩阵乘以内维数N = 1000;%输出列数P = 200;页数%一个=兰德(M, K,“gpuArray”);B =兰德(K, N, P,“gpuArray”);C = pagefun (@mtimes, A, B);s =大小(C)%返回M-by-N-by-P
S = 300 1000 200

输入参数

全部折叠

函数应用于输入的每个页面,指定为函数句柄。对于每个输出参数,有趣的每次调用时必须返回同一个类的值。

支持的值金宝app有趣的包括:

  • 大多数面向元素的分布式数组和gpuArray函数

  • @ctranspose

  • @fliplr

  • @flipud

  • @inv

  • @mldivide

  • @mrdivide

  • @mtimes

  • @rot90

  • @Transpose.

  • @til.

  • @Triu.

如果输入是分布式数组,则支持的值为金宝app有趣的还包括:

  • @鲁

  • @qr

  • @norm

输入数组,指定为分布式数组或gpuArray。

输入数组,指定为分布式数组、gpuArrays或数组。至少一个输入B1,…,Bn,必须是分布式数组或GPUARRAY。不支持使用分布式数组和GPUARRAY作为输入。金宝app在评估功能之前,存储在CPU存储器中的每个数组将被转换为分布式数组或GPUARRAY。如果您计划拨打几个电话pagefun使用相同的阵列,首先将该数组转换为分布式数组或GPUArray更有效。

输出参数

全部折叠

输出数组,作为分布式数组或gpuArray返回。

介绍了R2013b