thysol
BIOS-Overclocker(in)
Hallo,
Ich habe mir den Source Code von diesem Link heruntergeladen:
First OpenCL program
Ich habe ihn dann mit Microsoft Visual C# Express Edition 2010 geoeffnet. Der Compiler zeigte keine Fehler an und unter den References wahr auch OpenCL.NET und OpenCL.Template. Wenn ich dass Programm dann ausfuehre ploppen dann ein paar Konsolen Windows auf. Wenn ich dass Programm in Visual C# ausfuehre (Start Debugging) steht irgendwas auf den aufploppenden Konsolen Windows drauf. Wenn ich die .exe ausfuehre die beim heruntergeladenen Source Code dabei wahr Ploppen nur ein paar Konsolen Fenster auf aber es steht gar nichts drauf. Die anzahl der aufploppenden Fenster duerfe aber gleich sein. Dass ist eine Schaetzung weil die ploppen so schnell auf.
Hier ist der Soucre Code:
Woran liegt dass oder was mache ich falsch?
Ich bedanke mich schon mal im Voraus fuer die Antworten.
Ich habe mir den Source Code von diesem Link heruntergeladen:
First OpenCL program
Ich habe ihn dann mit Microsoft Visual C# Express Edition 2010 geoeffnet. Der Compiler zeigte keine Fehler an und unter den References wahr auch OpenCL.NET und OpenCL.Template. Wenn ich dass Programm dann ausfuehre ploppen dann ein paar Konsolen Windows auf. Wenn ich dass Programm in Visual C# ausfuehre (Start Debugging) steht irgendwas auf den aufploppenden Konsolen Windows drauf. Wenn ich die .exe ausfuehre die beim heruntergeladenen Source Code dabei wahr Ploppen nur ein paar Konsolen Fenster auf aber es steht gar nichts drauf. Die anzahl der aufploppenden Fenster duerfe aber gleich sein. Dass ist eine Schaetzung weil die ploppen so schnell auf.
Hier ist der Soucre Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FirstOpenCLProgram
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnOpenCL_Click(object sender, EventArgs e)
{
string vecSum = @"
__kernel void
floatVectorSum(__global float * v1,
__global float * v2)
{
// Vector element index
int i = get_global_id(0);
v1 = v1 + v2;
}";
//Initializes OpenCL Platforms and Devices and sets everything up
OpenCLTemplate.CLCalc.InitCL();
//Compiles the source codes. The source is a string array because the user may want
//to split the source into many strings.
OpenCLTemplate.CLCalc.Program.Compile(new string[] { vecSum });
//Gets host access to the OpenCL floatVectorSum kernel
OpenCLTemplate.CLCalc.Program.Kernel VectorSum = new OpenCLTemplate.CLCalc.Program.Kernel("floatVectorSum");
//We want to sum 2000 numbers
int n = 2000;
//Create vectors with 2000 numbers
float[] v1 = new float[n], v2=new float[n];
//Creates population for v1 and v2
for (int i = 0; i < n; i++)
{
v1 = (float)i / 10;
v2 = -(float)i / 9;
}
//Creates vectors v1 and v2 in the device memory
OpenCLTemplate.CLCalc.Program.Variable varV1 = new OpenCLTemplate.CLCalc.Program.Variable(v1);
OpenCLTemplate.CLCalc.Program.Variable varV2 = new OpenCLTemplate.CLCalc.Program.Variable(v2);
//Arguments of VectorSum kernel
OpenCLTemplate.CLCalc.Program.Variable[] args = new OpenCLTemplate.CLCalc.Program.Variable[] { varV1, varV2 };
//How many workers will there be? We need "n", one for each element
int[] workers = new int[1] { n };
//Execute the kernel
VectorSum.Execute(args, workers);
//Read device memory varV1 to host memory v1
varV1.ReadFromDeviceTo(v1);
}
}
}
Woran liegt dass oder was mache ich falsch?
Ich bedanke mich schon mal im Voraus fuer die Antworten.