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

📄 fractal_test.br

📁 用于GPU通用计算的编程语言BrookGPU 0.4
💻 BR
字号:
// fractal_test.br// tests kernel splitting of an iterative construct#include <stdio.h>kernel void mandelbrot( float4 cx<>, float4 cy<>, out float4 outInside<> );extern int getTime();void testFractal( int inSize, int inIterations, int* outTime ){	int start;	int stop;		int width;	int height;	int datasize;	float4 inputX<inSize,inSize>;	float* inputX_data;	float4 inputY<inSize,inSize>;	float* inputY_data;	float4 output<inSize,inSize>;	float* output_data;	int i, j;	float x, y;/*	FILE* outputFile;	unsigned char* image_data;*/		width = inSize*2;	height = inSize*2;	datasize = width*height;		inputX_data = (float*)malloc( datasize * sizeof(float) );	inputY_data = (float*)malloc( datasize * sizeof(float) );	output_data = (float*)malloc( datasize * sizeof(float) );	/*	image_data = (unsigned char*)malloc( datasize * sizeof(unsigned char) );		outputFile = fopen( "output.pgm", "wb" );	fprintf( outputFile, "P5\n" );	fprintf( outputFile, "%d\n", width ); // w	fprintf( outputFile, "%d\n", height ); // h	fprintf( outputFile, "255\n" );	*/	for( j = 0; j < height; j++ )	{		y = 3.0f * (float)(j) * (1.0f / (height-1)) - 1.5f;			for( i = 0; i < width; i++ )		{			x = 4.0f * (float)(i) * (1.0f / (width-1)) - 2.0f;					inputX_data[j*width+i] = x;			inputY_data[j*width+i] = y;		}	}		// run once for luck and prefetching...	streamRead( inputX, inputX_data );	streamRead( inputY, inputY_data );		mandelbrot( inputX, inputY, output );		streamWrite( output, output_data );	/*	for( i = 0; i < datasize; i++ )		image_data[i] = output_data[i] != 0 ? 0 : 255;		fwrite( image_data, datasize, 1, outputFile );		fclose( outputFile );*/		start = getTime();	for( i = 0; i < inIterations; i++ )		mandelbrot( inputX, inputY, output );	streamWrite( output, output_data );	stop = getTime();		*outTime = stop - start;}/* code to generate an image...void main(){	float4 inputX<STREAM_HEIGHT,STREAM_WIDTH>;	float* inputX_data;	float4 inputY<STREAM_HEIGHT,STREAM_WIDTH>;	float* inputY_data;	float4 output<STREAM_HEIGHT,STREAM_WIDTH>;	float* output_data;	unsigned char* image_data;	int i, j;	float x, y;	FILE* outputFile;		inputX_data = (float*)malloc( DATA_SIZE * sizeof(float) );	inputY_data = (float*)malloc( DATA_SIZE * sizeof(float) );	output_data = (float*)malloc( DATA_SIZE * sizeof(float) );	image_data = (unsigned char*)malloc( DATA_SIZE * sizeof(unsigned char) );			outputFile = fopen( "output.pgm", "wb" );	fprintf( outputFile, "P5\n" );	fprintf( outputFile, "%d\n", WIDTH ); // w	fprintf( outputFile, "%d\n", HEIGHT ); // h	fprintf( outputFile, "255\n" );		for( j = 0; j < HEIGHT; j++ )	{		y = 3.0f * (float)(j) * (1.0f / (HEIGHT-1)) - 1.5f;			for( i = 0; i < WIDTH; i++ )		{			x = 4.0f * (float)(i) * (1.0f / (WIDTH-1)) - 2.0f;					inputX_data[j*WIDTH+i] = x;			inputY_data[j*WIDTH+i] = y;		}	}		streamRead( inputX, inputX_data );	streamRead( inputY, inputY_data );	mandelbrot( inputX, inputY, output );	streamWrite( output, output_data );		for( i = 0; i < DATA_SIZE; i++ )		image_data[i] = output_data[i] != 0 ? 0 : 255;		fwrite( image_data, DATA_SIZE, 1, outputFile );		fclose( outputFile );}*/

⌨️ 快捷键说明

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