Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[parallel-C] Visual studio of iets anders?

Pagina: 1
Acties:

  • JustAJ
  • Registratie: November 2010
  • Laatst online: 09:56
Beste mensen,

voor mijn stage moet ik een programma wat in C geschreven is geschikt maken voor parallelle verwerking op de GPU. Dus ik heb wat info e.d. gezocht, en nu wil ik eerst wat ervaring opdoen in het programmeren in C voordat ik overstap naar CUDA.
Vanuit school heb ik ervaring met Visual Studio, maar dan alleen met C#, C gebruiken we gewoon niet. Nu is mijn vraag of (parallel)C ook goed werkt in Visual Studio, of dat ik naar jullie mening beter wat anders kan nemen (zoals *blugh* NetBeans) ?

Alvast bedankt

Edit: en tutorials over parallel-C programmeren? Over CUDA is wel het een en ander te vinden, maar parallel in C...:P of zou ik in een keer met CUDA kunnen beginnen, omdat CUDA eigenlijk niet veel meer is dan een aantal extensies aan C?

[ Voor 18% gewijzigd door JustAJ op 06-09-2011 11:46 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Doe eens gek en probeer 't eens :?
Native support for Visual Studio

[ Voor 60% gewijzigd door RobIII op 06-09-2011 11:39 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • JustAJ
  • Registratie: November 2010
  • Laatst online: 09:56
Lol en bedankt, het kán dus in ieder geval wel :) En werkt het ook, iemand met ervaring ermee?

  • IStealYourGun
  • Registratie: November 2003
  • Laatst online: 16-10 21:36

IStealYourGun

Доверяй, но проверяй

Visual studio is niet gericht op C, maar als ik google mag geloven kan je met enkel simpele aanpassingen ook applicaties in C compilen door gebruik te maken van de ingebouwde C++ compiler. Volgens Wikipedia zou deze de C90 standaard volgen.

Ik ben niet zo thuis in de wereld van C, dus ik heb geen idee of er héél veel verschil is tussen compilers.

♥ Under Construction ♦ © 1985 - 2013 and counting. ♣ Born to be Root ★ In the end, we are all communists ♠ Please, don't feed me meat


  • JustAJ
  • Registratie: November 2010
  • Laatst online: 09:56
IStealYourGun schreef op dinsdag 06 september 2011 @ 11:55:
Visual studio is niet gericht op C, maar als ik google mag geloven kan je met enkel simpele aanpassingen ook applicaties in C compilen door gebruik te maken van de ingebouwde C++ compiler. Volgens Wikipedia zou deze de C90 standaard volgen.

Ik ben niet zo thuis in de wereld van C, dus ik heb geen idee of er héél veel verschil is tussen compilers.
zou je is de linkjes door willen sturen wat jij gevonden heb? ik heb het ook gezien, maar weer weggeklikt, en nu kan ik het nergens meer vinden. Je moest iets als .c opslaan ipv .cpp, maar waar en hoe weet ik niet meer.

En nog steeds op zoek naar mensen die me uit ervaring de combinatie C en Visual Studio kan aan- dan wel afraden? O-)

  • IStealYourGun
  • Registratie: November 2003
  • Laatst online: 16-10 21:36

IStealYourGun

Доверяй, но проверяй

Browsergeschiedenis doet wonderen.
http://www.daniweb.com/so...lopment/cpp/threads/16256

♥ Under Construction ♦ © 1985 - 2013 and counting. ♣ Born to be Root ★ In the end, we are all communists ♠ Please, don't feed me meat


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Dat advies daar is overkill. Het is voldoende om .C files te gebruiken, dan weet Visual Studio al dat het om C gaat. Waar en hoe, dat is uiteraard op disk en op elke manier die je wil.

Terug naar de originele vraag: er zijn tig verschillende manieren om parallel in C te programeren. De C# thread methode werkt. Je kunt SSE intrinsics gebruiken. CUDA is een optie. MPI is mogelijk. Je zult daarom niet "zomaar" een tutorial kunnen. Sowieso is een goede basiskennis noodzakelijk; hobbyen is niet zo'n succes.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 26-11 20:59

Matis

Rubber Rocket

Ik raad je aan om buiten het Windows-domein te kijken. Ikzelf heb twee jaar geleden ook CUDA icm C en threading gedaan.
Dit was GNU-C en POSIX, Linux dus ;)
Als IDE toen Eclipse CPP-editie gebruikt, werkte erg prettig.

Toen was de ondersteuning nog erg minimaal, maar tegenwoordig al een stuk beter.

[ Voor 11% gewijzigd door Matis op 06-09-2011 14:50 ]

If money talks then I'm a mime
If time is money then I'm out of time


  • JustAJ
  • Registratie: November 2010
  • Laatst online: 09:56
@IStealYourGun: uhuh, ik weet 't over me browser geschiedenis... ik heb alleen zooooveel entries die er allemaal hetzelfde uitzien. Soort speld en hooiberg idee, je kent het wel. Iig bedankt :)

@MSalters: het is dus voldoende om als ik een nieuw item aanmaak er .c achter te zetten? Dus probeersel.c bijvoorbeeld? Ik wil sowieso in CUDA gaan programmeren, maar het leek me verstandig om daar eerst wat parallelle C-code voor gemaakt te hebben.

@Matis: tja, zit hier aan een Windhoos werkcomputer vast he...:P

[ Voor 0% gewijzigd door JustAJ op 06-09-2011 15:01 . Reden: leestekentjes voor de leesbaarheid :P ]


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 26-11 20:59

Matis

Rubber Rocket

JustAJ schreef op dinsdag 06 september 2011 @ 15:01:
@Matis: tja, zit hier aan een Windhoos werkcomputer vast he...:P
Allereerst: Het OS heet Windows
Ten tweede: Waarom :?

If money talks then I'm a mime
If time is money then I'm out of time


  • TweakPino
  • Registratie: September 2005
  • Laatst online: 07:43
CUDA, C/C++ en Windows gaan prima samen. De beste plek om te beginnen: NVIDIA CUDA C Getting Started Guide for Microsoft Windows.

Ik zou beginnen met wat simpele CUDA voorbeelden, dan zelf wat maken, en daarna je programma stukje bij beetje omzetten naar CUDA.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:45
Persoonlijk zou ik CUDA helemaal overslaan en direct OpenCL gebruiken.

OpenCL is qua mogelijkheden en architectuur praktisch hetzelfde als CUDA, maar is meer standaard, meer portable (behalve NVIDIA ondersteunen ook AMD en Intel OpenCL) en in praktisch elk opzicht de "opvolger" van CUDA (al wil NVIDIA dat geloof ik nog niet helemaal toegeven).

Praktisch gezien is het voordeel van OpenCL ten op zichte van CUDA dat je geen aparte compiler toolchain meer nodig hebt om je CUDA kernels te compileren en te linken tegen je C(++) applicatie. De compiler is onderdeel van de OpenCL library, en je kernels schrijf je in plain text C (en worden bij het laden gecompileerd, maar daar heb je als gebruiker niets mee te maken).

Voor OpenCL heb je dus geen speciale "Visual Studio ondersteuning" nodig; je hoeft alleen de juiste headers te includen en de juiste libraries te linken in je project. Net zoals elke andere library dus.

  • JustAJ
  • Registratie: November 2010
  • Laatst online: 09:56
Het probleem is dat ik weinig info over OpenCL kan vinden. Uiteraard vind je overal wat het is, en zo uitgelegd dat de schrijvers aaalles weten over OpenCL, maar tutorials hoe je simpele programmatjes schrijft (je Hello World, alleen dan parallel zeg maar) kan ik niet vinden. Terwijl ik voor CUDA toch al wel wat gevonden heb.
Daarnaast heb ik het idee door wat ik gevonden heb over OpenCL dat het nog erg in ontwikkeling is, in tegenstelling tot CUDA wat al vrij volwassen lijkt.
Snel vraagje, is exact dezelfde OpenCL code die op me werkpctje hier draait (Nvidia kaart) te kopieren, en te draaien op m'n pc thuis (ATI) ?

Correct me if I'm wrong alsjeblieft over bepaalde punten, het lijkt mij ook handiger om OpenCL te gebruiken, maar CUDA lijkt veel meer gedocumenteerd e.d.
Iedereen bedankt voor het meedenken iig tot dusverre

EDIT: ow |:( forum en een programming guide gevonden :+

2e edit: ik kan alleen niet echt vinden wat je nodig hebt om OpenCL op een NVidia kaart te draaien? Met een ATI kaart is VS 20xx professional en Catalyst genoeg als ik het goed begrijp (?) maar wat als je met een Nvidia kaartje zit?

[ Voor 15% gewijzigd door JustAJ op 07-09-2011 10:36 ]


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 26-11 20:59

Matis

Rubber Rocket

NVIDIA has been delivering OpenCL support in end-user production drivers since October 2009, supporting OpenCL on all 300,000,000+ CUDA architecture GPUs shipped since 2006. OpenCL v1.1 support is included in publicly available NVIDIA drivers version 280.13 or later on the driver download page
Tevens staan op die site onderaan ook alle tutorials voor OpenCL op CUDA-compatible NVIDIA GPU's.

It ain't hard ;)

If money talks then I'm a mime
If time is money then I'm out of time


  • JustAJ
  • Registratie: November 2010
  • Laatst online: 09:56
Pfffffft sorry... :P Waarschijnljk overheen gelezen ofzo :F Maar dat is alles wat je nodig hebt? Op me ATI systeem thuis moest ik ook nog dit installeren, dat is voor die NVidia kaart niet nodig dan als ik het goed begrijp? (ik vraag het maar ff voor de zekerheid)
Pagina: 1