# OpenCL



## thysol (28. Juli 2010)

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:


> using System;
> using System.Collections.Generic;
> using System.ComponentModel;
> using System.Data;
> ...


_

Woran liegt dass oder was mache ich falsch?

Ich bedanke mich schon mal im Voraus fuer die Antworten._


----------



## bingo88 (28. Juli 2010)

Das Programm läuft vermutlich in VS so schnell durch, dass  es direkt wieder geschlossen wird. Versuche mal mit Strg + F5 (Ausführen) zu starten, das hält die Konsole offen.


----------



## thysol (28. Juli 2010)

bingo88 schrieb:


> Das Programm läuft vermutlich in VS so schnell durch, dass  es direkt wieder geschlossen wird. Versuche mal mit Strg + F5 (Ausführen) zu starten, das hält die Konsole offen.



Habe ich versucht, gleiches Ergebnis. Es ist bestimmt so dass dass so sein soll. Ich habe nur Angst dass aus irgend einem Grund OpenCL nicht richtig funktioniert auf meinem Rechner. 

Ich habe es geschafft ein Screenshot von einem der aufploppenden Konsolen Windows zu machen. Da steht, "The handle could not be opened during redirection of handle 1". Soll dass so sein?


----------



## msimpr (28. Juli 2010)

Vllt ein Bug inder 2010 Version..


----------



## bingo88 (28. Juli 2010)

thysol schrieb:


> Ich habe es geschafft ein Screenshot von einem der aufploppenden Konsolen Windows zu machen. Da steht, "The handle could not be opened during redirection of handle 1". Soll dass so sein?


Ich bin jetzt mit OpenCL und .NET nich so fit, aber mein Bauch sagt mir eher "Nein"


----------



## thysol (29. Juli 2010)

Ich habe mir jetzt den Source Code fuer dass Programm hier heruntergeladen. Dass Programm funktioniert tadellos.

Case study: geometric fitting of pipes

Wenn ich dass Programm allerdings starte und den Knopf "Generate Ellipses" druecke kommen wieder ganz viele aufploppende Konsolen Windows allerdings hat er dann tatsaechlich die Ellipsen gezeichnet und der Rest des Programms funktioniert problemlos. Ich mache jetzt einfach dass Tutorial weiter und hoffe dass ich nicht auf weitere Probleme stossen werde.

Danke fuer die Hilfe.


----------



## nfsgame (29. Juli 2010)

Fehlt da 

```
//Creates population for v1 and v2
            for (int i = 0; i < n; i++)[U][B];[/B][/U]
```


Nicht das von mir eingetragene Semikolon ?


----------



## thysol (29. Juli 2010)

nfsgame schrieb:


> Fehlt da
> 
> ```
> //Creates population for v1 and v2
> ...



Soweit wie ich weiss braucht mann dass nicht nach der Erstellung einer Schleife oder nach einem if Statement.


----------



## aurionkratos (29. Juli 2010)

thysol schrieb:


> Soweit wie ich weiss braucht mann dass nicht nach der Erstellung einer Schleife oder nach einem if Statement.



Es wäre sogar falsch


----------



## bingo88 (29. Juli 2010)

Man könnte auch von ungewolltem Verhalten sprechen ^^


----------



## thysol (31. Juli 2010)

Da dass Pipe Fitting Programm ohne Probleme funktioniert bin ich vorerst zuversichtlich dass hoffentlich auch mal meine eigenen OpenCL Programme funktionieren.

Ich wollte mal versuchen dass Zaehl Programm in OpenCL zu schreiben. Ich weiss dass mann dass nicht parallelisieren kann aber es soll ja nur ein Test sein. Ausserdem will ich sehen wie die IPC der 850MHz 5870 sich gegen den Intel i5-750 schlaegt. 

Link zum Zaehl-Programm:
http://extreme.pcgameshardware.de/programmierung-und-webdesign/109702-microsoft-visual-c.html

Wie soll ich jetzt die Funktionen die bingo88 mir geschrieben hat in OpenCL umschreiben? Ich muss ja erst mal den Kernel als "String" schreiben und hinterher den Kompilier Befehl benutzen wie in dem ersten OpenCL Programm wo ich den Source Code runtergeladen habe. Dann muss ich den Standard Code schreiben zur initialisierung der OpenCL devices. Dann muss ich die Anzahl der Workers (Threads) festlegen, fuer dass Zaehl Programm ja nur einen.

In dem Source Code des ersten OpenCL codes dass im Startpost zu sehen ist ist aber noch Code fuer die Matheaufgabe ausserhalb des OpenCL Kernels. Wie genau muesste ich dann dass Zaehl Programm aufteilen in C# code und in den OpenCL Kernel?


----------

