⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scatter.br

📁 用于GPU通用计算的编程语言BrookGPU 0.4
💻 BR
字号:
// gatherop.br// Tests the gatherop runtime function, as well// as fallback onto the CPU runtime when a// GPU runtime cannot support native gatherop.#include <stdio.h>reduce void mydec(float4 a <>, reduce float4 b <> ) {   b -= a;}reduce void mydec1(float a <>, reduce float b <> ) {   b -= a;}reduce void myinc(float4 a <>, reduce float4 b <> ) {   b += a;}reduce void myinc1(float a <>, reduce float b <> ) {   b += a;}void print_dataf (float4 data_f [2][2]) {   int i,j;     for (i=0;i<2;++i) {        for (j=0;j<2;++j) {           printf("{%3.2f %3.2f %3.2f %3.2f}",                  data_f[i][j].x,                  data_f[i][j].y,                  data_f[i][j].z,                  data_f[i][j].w);        }        printf("\n");     }}void printarray1 (float data[][10]) {  unsigned int i,j;  for (i=0; i<10; i++) {    for (j=0; j<10; j++) {      printf ("%3.2f ", data[i][j]);    }    printf ("\n");  }}int main () {  float  a<10, 10>;  float2 b<10, 10>;  float  e<10, 10>;  float4 f<2,2>;  float4 g<2,2>;  float2 index<2,2>;  float  data_a[10][10];  float2 data_b[10][10];  float  data_e[10][10];  float4 data_f[2][2]={ { float4(0,0,0,0), float4(1,-1,1,-1) },                            { float4(2,-2,2,-2), float4(3,-3,3,-3) } };  float4 data_g[2][2]={ { float4(3,2,1,0), float4(5,6,7,8) },                            { float4(6,4,2,0), float4(1,2,3,4) } };  float2 data_i[2][2]={ { float2(0,1),float2(1,0) },                        { float2(1,1),float2(0,0) } };  int i,j;  for (i=0; i<10; i++)    for (j=0; j<10; j++) {      data_a[i][j] = (float)(i+10*j);      data_b[i][j].x = (float)(9-(i));      data_b[i][j].y = (float)(9-(j));      data_e[i][j] = 5.0f;    }  /***** Test 1 *******/  streamRead(a, data_a);  streamRead(b, data_b);  streamRead(e, data_e);    streamScatterOp(e,b,a,mydec1);    streamWrite(e, data_e);  printarray1(data_e);  printf ("\n");  /****** Test 2 *****/  streamRead(index, data_i);   streamRead(f, data_f);  streamRead(g, data_g);  streamScatterOp(g,index,f,myinc);  streamWrite(g,data_g);  print_dataf(data_g);  printf ("\n");  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -