abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 12:22 | Komunita

Neziskové technologické konsorcium Linux Foundation rozšířilo seznam svých oficiálních projektů. Nejnovějším projektem je Open Source Security Foundation (OpenSSF), jehož cílem je zvýšit bezpečnost open source softwaru. Více například v příspěvcích na blozích GitHubu nebo Microsoftu.

Ladislav Hagara | Komentářů: 0
dnes 11:44 | Nová verze

Byla vydána verze 3.1 webového aplikačního frameworku napsaného v Pythonu Django (Wikipedie). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
dnes 01:11 | Nová verze

Svobodná federalizovaná sociální síť Mastodon byla aktualizována. Vydání 3.2 mj. přepracovává audio přehrávač, zlepšuje zabezpečení přihlášení aj.

Fluttershy, yay! | Komentářů: 0
včera 14:00 | Komunita

Byla vydána verze 1.5.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace. Na YouTube jsou ke zhlédnutí záznamy přednášek z konference JuliaCon 2020 konané online minulý týden.

Ladislav Hagara | Komentářů: 0
včera 13:33 | IT novinky

Sdružení CZ.NIC informuje, že pro domény s koncovkou .CZ, jejichž platnost nebyla včas prodloužena, platí opět ochranná lhůta 60 dnů (30 dnů je doména plně funkční, 30 dnů je vyřazena z DNS – není dostupná). Po více než čtyřech měsících tak končí zvláštní režim, kdy byla funkčnost nezaplacených domén dočasně prodloužena ze 30 na 60 dnů z důvodu mimořádné situace související s onemocněním COVID-19.

Ladislav Hagara | Komentářů: 16
včera 09:00 | Nová verze

Byla vydána nová verze linuxové distribuce BunsenLabs Linux s předkonfigurovaným správcem oken Openbox. Její název je Lithium a založena je na Debianu 10 Buster. Přehled novinek v poznámkách k vydání. BunsenLabs Linux je nástupcem dnes již nevyvíjené linuxové distribuce CrunchBang (zkráceně #!).

Ladislav Hagara | Komentářů: 0
včera 08:00 | Nová verze

Po 9 týdnech vývoje od vydání Linuxu 5.7 oznámil Linus Torvalds vydání Linuxu 5.8 (LKML). Přehled nových vlastností a vylepšení na stránce Linux Kernel Newbies.

Ladislav Hagara | Komentářů: 0
včera 07:00 | Komunita

Omar Roth, hlavní vývojář Invidious, alternativního webového frontendu k YouTube, oznámil, že kvůli přehlcení a nedostatku motivace projekt opouští a zřejmě skončí také oficiální instance invidio.us (k 1. září, resp. API k 1. říjnu); stále poběží další instance nebo je možné nasadit vlastní.

Fluttershy, yay! | Komentářů: 0
2.8. 14:22 | Zajímavý projekt

Byly vyhlášeny výsledky soutěže JS1024 2020 aneb zajímavé programy napsané v JavaScriptu o velikosti maximálně 1 024 bajtů. Více o vítězném pianu na stránkách autora.

Ladislav Hagara | Komentářů: 0
2.8. 01:11 | Zajímavý software

Felix Rieseberg na Twitteru oznámil, že po Windows 95 dostal do Electronu také počítač Macintosh Quadra 900 s operačním systémem Mac OS 8 a celou řadou aplikací. Zdrojové kódy, jakož i připravené balíčky, jsou k dispozici na GitHubu pod názvem macintosh.js.

Ladislav Hagara | Komentářů: 0
Dokážete si představit, že by váš hlavní počítač (desktop, notebook) byl v současné době založen na architektuře jiné než x86 (x86_64)? Například ARM, POWER, RISC-V,…
 (9%)
 (9%)
 (58%)
 (17%)
 (7%)
Celkem 122 hlasů
 Komentářů: 8, poslední včera 15:31
Rozcestník

Vývoj CUDA s KDevelop a optimus

13.12.2013 16:41 | Přečteno: 955× | Linux a další věci co má společného s IT | Výběrový blog

Tenhle blog slouží jako malý návod pro ty, kteří se s CUDA na linuxu prali jako já. Zprovoznění CUDA na linuxu není vůbec žádná sranda s technologií optimus. První problém, na který narazíte je zprovoznění Bumblbee. Jelikož jedu na (K)Ubuntu 13.10, tak se tento návod bude soustředit hlavně pro tuto distribuci, ale zkušenější linuxák by si měl poradit i na jiných distribucích. Moje karta nefungovala správně s ovladači v oficiálním repozitáři, tak jsem musel nainstalovat novější ovladače. Jelikož jsem lenivý je kompilovat, tak jsem nainstaloval ovladač z repozitáře ppa:xorg-edgers/ppa a to ten nejnovější ve verzi 331. Po nainstalování ovladače a všeho potřebného doporučuji tento repozitář odebrat, aby se vám pořád neaktualizoval (přeci jenom je ten názeve edgers). Poté jsem nainstaloval bumblebee z jejich repozitáře ppa:bumblebee/stable. Bohužel si již přesně napamutuju co jsem instaloval, ale balíky nvidia-331, bumblebee-nvidia a primus určite. Po instalaci zkuste restart a modlete se aby vše fungovalo, pokud vám bumblbee nefunguje musíte si najít v čem může být problém (zablokovat ostatní ovladače tj. hlavně nouveau atp.). Pokud již vám jede bumblebee máte to nejhorší za sebou a gratuluju. Dalším krokem je instalace CUDA a to balíčky nvidia-cuda-dev nvidia-cuda-gdb nvidia-cuda-toolkit. Teď je nejlepší zkusit si zkompilovat nějaký program pro CUDA. Může zkusit např. tento, je pro zařízení s podporou CUDA 2.0 a větší kvůli printf v kernelu:
#include <stdio.h>

__global__ void helloCUDA(float f)
{
  printf("Hello thread %d, f=%f\n", threadIdx.x, f);
}

int main()
{
  helloCUDA<<<1, 5>>>(1.2345f);
  cudaDeviceSynchronize();
  return 0;
}
Kompilaci provede pomocí (kde test.cu je název souboru s kódem a test název zkompilovaného programu):
nvcc -arch=sm_20 test.cu -o test
Aby program s CUDA fungoval (pokud máte optimus) je ho potřeba pustit pomocí optirun. Výsledný program spustíte tedy pomocí optirun takto (můžete použít optirun s argumente --no-xorg):
optirun --no-xorg ./test
Pokud se vám vypíše
Hello thread 0, f=1.234500
Hello thread 1, f=1.234500
Hello thread 2, f=1.234500
Hello thread 3, f=1.234500
Hello thread 4, f=1.234500
,tak vám CUDA funguje přesně jak má a může vesele vyvíjet aplikace využívající GPU.

KDevelop

Pokud stejně jako já rádi použiváte KDevelop, tak nastavení aby se KDevelop choval k souborům s příponou .cu a .cuh jako souborům C resp C++ provode v systémovém nastavení KDE v kategorii Asociace souborů kde u x-c++src pridáte další příponu *.cu a u x-c++hdr přidáte příponu *.cuh. Nyní by vám již mělo fungovat doplňování a refaktoring v KDevelop se soubory s těmito příponami.


Ještě zbývá upravit v projektu CMakeLists.txt, tak aby vypadal nějak takto:
cmake_minimum_required(VERSION 2.8)

project(nazevprojektu)

# kvuli kompabilite s nvcc je potreba pouzit gcc verze 4.6 u CUDA toolkit 5.5 tohle muzete odebrat
set(CMAKE_CXX_COMPILER g++-4.6)
set(CMAKE_CC_COMPILER gcc-4.6)
set(CMAKE_C_COMPILER gcc-4.6) 

find_package(CUDA REQUIRED)
include(FindCUDA)


# nvcc flags                                                                                                                                                                                               
set(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-gencode arch=compute_30,code=sm_30)
set(CUDA_VERBOSE_BUILD ON CACHE BOOL "nvcc verbose" FORCE)


cuda_add_executable(nazevprojektu main.cu dalsifile.cu file.cpp)

Při vývoji narazíte na problém, že se vám aplikace spuštěné pomocí optirun déle spouští. Je to způsobením, že se pokaždé musí nastartovat další X server. To lze vyřešit tím, že si pustíte nějaký program pomocí optirun a necháte ho běžet. Poté se vám již aplikace budou spouštět normálně.

Debugování

Nyní přichází na řadu debugování to lze provádět pomocí cuda-gdb. Aby vám cuda-gdb fungovalo je potřeba ukončit všechny programy, které grafickou kartu s CUDA využívají. Opět musíte spouštět cuda-gdb pomocí optirun nyní již musíte použít argument --no-xorg jinak vám nebude fungovat. Například takto:

optirun --no-xorg cuda-gdb --args programscuda -jehoargumenty
cuda-gdb je postaveno na gdb, takže musíte umět aspoň nějaké základy používání gdb.

Pokud jste došli až sem a vše vám funguje gratuluji.

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

19.12.2013 09:06 natiku | skóre: 26 | blog: natiku
Rozbalit Rozbalit vše Re: Vývoj CUDA s KDevelop a optimus
Pěkné!

Moc dík, notebook s OPTIMUS mám už na cestě.
ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.