Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Distanční výuka, organizace

Předmět je nyní v přípravě na běh v letním semestru akademického roku 2021/2022. Dotazy můžete psát do vlákna Dotazy na fóru nebo na Teams. Pokud nebude dohodnuto jinak, tak všechna důležitá oznámení budou posílaná/archivovaná ve vláknu Novinky / News. V distanční formě výuky budou v časech přednášek konzultace k záznamům přednášek na YouTube Obecnější dotazy pište do fóra k vhodně zvolenému tématu. Dotazy k výkladu a interakci v rámci cvičení formulujte do “chatu” místnosti a budou se probírat převážně v pořadí jejich zápisu. Intenzivní kratší videa připravená panem doktorem Petrem Štěpánem na YouTube.

Přednášky

Přednášky jsou k dispozici formou nahrávek na YouTube. Odkazy na anglické verze prezentací a česky namluvená videa jsou přidaná na stránku českých přednášek kam budou přidané i další odkazy, jak budou k dispozici. K dispozici jsou i české prezentace z minulých let na celý semestr. Základní učebnice, která plně pokrývá minimálně první polovinu semestru, je Computer Organization and Design, The HW/SW Interface ve čtvrté MIPS edici, autoři profesor Patterson a Hennessy. Dostupná je pro studenty ze sítě ČVUT v elektronické formě přes službu https://dialog.cvut.cz/. Pro přístup zvolte v poli Prosím, vyberte si svou univerzitu: volbu České vysoké učení technické, vyplňte své přihlašovací údaje a potvrďte je. Potom zvolte zdroj Knovel a zadejte jména autorů a knihu, omezte seznam vyhledávání jen na knihy (nejdříve Book/Text a potom Book) a můžete číst. Pro přístup z počítače mimo síť ČVUT se přihlaště třeba do BRUTE a poté ze záložky KNOVEL zvolte Vzdálený přístup do databáze. 30 kusů papírové učebnice bylo také do knihovního fondu zakoupeno z prostředků kateder řídicí techniky, kyberneticky a počítačů. Aktuální, šesté vydání, je v knihovně ČVUT k dispozici ve dvou exemplářích v MIPS edici a dvou v RISC-V edici.

Konzultace - Cvičení

Týdenní harmonogram schůzek ‒ v pondělí bude otevřená místnost jak v 11:00 tak i v 16:15 . Právě otevřené místnosti jsou přístupné z vašeho profilu na Brute. V týdnu podle vašeho zápisu do jednotlivých cvičení budou v čase podle rozvrhu otevírané místnosti pro cvičení po skupinách. Během semestru budeme dodržovat svátky a přesuny podle harmonogramu.

Vzdálený přístup

K materiálům a programovému vybavení v laboratořích, včetně uživatelských kont je možné přistupovat vzdáleně. Návod najdete v dokumentaci v sekci Vzdálený přístup.

Aktuální probíraná látka

Pro úspěšný start výuky v semestru se předpokládá, že každý týden před konzultacemi a cvičeními shlédnete záznam příslušné přednášky nebo nastudujete příslušnou problematiku z učebnice a ověříte si rozsah látky prohlédnutím příslušné prezentace.

Nutným předpokladem do začátku je základní znalost o ukládání informace po základních jednotkách, bitech, a jak takto zakódovat nezáporná celá čísla. Přesto, že se tato znalost předpokládá a pro jakoukoliv serióznější práci s počítačem je nutná, tak i základy v rychlosti shrnuje i první přednáška. Přesto by si každý měl ověřit a dostudovat tyto znalosti dopředu z materiálu APOLOS - výuka APO předpokládá znalost 3. kapitoly.

Dále základní znalosti o návrhu jednoduchých algoritmů v jazyce C a nebo Python.

Brute Big Blue Button

Pro interaktivní výuku a schůzky se bude používat systém Big Blue Button integrovaný do Brute. Návod pro studenty zde BigBlueButton overview for viewers (students).

Git

Zdrojové kódy ukázek z přednášek i základy pro vlastní experimenty budou publikované ve volně dostupném repozitáři https://gitlab.fel.cvut.cz/b35apo/stud-support. Kód ke kontrole a komentování cvičícími pak bude předávaný přes osobní GIT repozitář, s tím že URL k danému souboru, adresáři zašlete e-mailem dohromady s dotazem nebo žádostí o ohodnocení svému cvičícímu.

Zápočet a zkouška

Základní kontrolou vašeho pochopení látky budou již od začátku semestru naplánované čtyři domácí úkoly, semestrální práce a zkouška. Bodové hodnocení viz Hodnocení.

Bubble-sort a případně další odevzdávané práce v assembleru

Pro zvládnutí předávání a hodnocení většího objemu prací hledáme způsob, jak maximálně jak pro studenty tak pro cvičící interakci zautomatizovat. V případě kontroly a zpětné vazby k implementaci algoritmu bubble-sort budeme předpokládat, že se implementace nachází v souboru work/bubble-sort/bubble-sort.S vašeho repozitáře. Implementace musí direktivou .globl exportovat symboly array_size a array_start, přitom za symbolem array_start nesmí být v následujících 200 bytech žádná data nebo kód, jejichž přepsání by mělo negativní vliv na běh programu. Testovací program nahraje od adresy array_start testovací sadu dat, do slova na adrese array_size vyplní počet prvků, program je spuštěný a po zastavení na instrukci break dojde k vyzvednutí dat z adresy array_start. V repozitáři stud-support je připravená šablona projektu (seminaries/qtrvsim/buble-sort) a v tomto adresáři šablona work/bubble-sort/bubble-sort.S vlastní implementace. Soubor a případně i ostatní soubory zkopírujte pod správným jménem do adresáře work/bubble-sort vašeho repozitáře. Veškerý vývoj lze provést s využitím interního assembleru. Pokud chcete provádět testování tak, jak jsme schopní ho zautomatizovat, tak je potřeba externí riscv32-unknown-elf compiler. S interním se zatím neumíme při nahrávání odkázat na správné adresy. Při zápisu adres absolutními hodnotami lze testovat i vnitřním assemblerem

qtrvsim_cli --dump-cycles --asm bubble-sort.S --load-range 0x12340,array_size.in --load-range 0x12344,array_data.in --dump-range 0x12344,60,array_data.out
Automatický systém zjišťuje každé 2 minuty ze kterých repozitářů přišla informace o změně kódu. Pro ty pak provede testy a zapíše výsledky do souboru pojmenovaného podle přihlašovacího jména do adresáře http://pisa-virt.felk.cvut.cz/apo/bubble-sort-ci/.

Optimalizace kódu a návrhu cache

Testovací systém předpokládá, že se v souboru work/apo-sort/apo-sort.S vašeho repozitáře nachází třídící algoritmus. Implementace musí direktivou .globl exportovat symboly array_size a array_start, přitom za symbolem array_start nesmí být v následujících 200 bytech žádná data nebo kód, jejichž přepsání by mělo negativní vliv na běh programu. Testovací program nahraje od adresy array_start testovací sadu dat, do slova na adrese array_size vyplní počet prvků, program je spuštěný a po zastavení na instrukci break dojde k vyzvednutí dat z adresy array_start. V repozitáři stud-support je připravená šablona projektu (seminaries/qtrvsim/apo-sort) a v tomto adresáři šablona work/ao-sort/apo-sort.S vlastní implementace. Soubor a případně i ostatní soubory zkopírujte pod správným jménem do adresáře work/apo-sort vašeho repozitáře. Veškerý vývoj lze provést s využitím interního assembleru. Při testování je procesor natavený na volbu No pipeline no cache.

Parametry paměti cache se nastavují v souboru work/apo-sort/d-cache-template.par ve formátu

policy,sets,words_in_block,ways,write_method
například
lru,1,1,1,wb
Maximální povolená velikost vyrovnávací paměti je 16 32-bitových slov. Nahrávaná testovací sada obsahuje mezi 24 a 32 slovy. Latence prvního přístupu do hlavní paměti je nastavena na 10 cyklů, při sekvenčním přístupu je nastavená hodnota burst na 2 (ve vlastním výpočtu jsem nalezl drobnou chybu v korekci času přístupů při použití burst, můžete jí zkusit popsat, první dostane bod).

Pokud chcete provádět testování tak, jak jsme schopní ho zautomatizovat, tak je potřeba externí riscv32-unknown-elf compiler. S interním se zatím neumíme při nahrávání odkázat na správné adresy. Při zápisu adres absolutními hodnotami lze testovat i vnitřním assemblerem

qtrvsim_cli --dump-cycles --dump-cache-stats --d-cache lru,1,2,2,wb --read-time 10 --write-time 10 --burst-time 2 --asm apo-sort.S --load-range 0x12340,array_size.in --load-range 0x12344,array_data.in --dump-range 0x12344,60,array_data.out

Automatický systém zjišťuje každé 2 minuty ze kterých repozitářů přišla informace o změně kódu. Pozor, testuje se větev master. Větev main tento běh již do testů přidávat nebudu. Pokud byl repozitář změněný, provede se test a ten zapíše výsledky do souboru pojmenovaného podle přihlašovacího jména do adresáře http://pisa-virt.felk.cvut.cz/apo/apo-sort-ci/.

Vyřešení/eliminace datových hazardů přizpůsobením/optimalizací kódu pro nestandardní RISC-V CPU

Implementovat Fibonacciho posloupnost pro CPU bez hazard unit (fibo-hazards). Kód se odevzdává zasláním do osobního GITu. Aktuální seznam (informace o chybách v individuálním logu v adresáři).

courses/b35apo/distedu/start.txt · Last modified: 2022/03/22 12:57 by pisa