diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1bae60e --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +linux/build +windows/build + +linux/boat_sim +windows/boat_sim.exe \ No newline at end of file diff --git a/README.md b/README.md index a7d183f..7557cf4 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Cílem projektu je optimalizovat algoritmus pro výpočet vln na vodě. Tento algoritmus je implementován v souboru `Ocean.cpp`, konkrétně ve funkci `updateVertices` a jejích volaných funkcích. Vaším úkolem bude vytvořit optimalizovanou verzi této funkce pomocí **SSE, AVX** nebo **AVX2**. -Kód můžete implementovat pomocí **intrinsic funkcí** (změňte v `Ocean.h` makro `ASM_TYPE` na `INTRINSIC`) nebo čistě v **GCC inline assembly** v souboru `xlogin00.s` (změňte `ASM_TYPE` na `CLEAR_ASM`). +Kód můžete implementovat pomocí **intrinsic funkcí** (změňte v `Ocean.h` makro `ASM_TYPE` na `INTRINSIC`) nebo čistě v **GCC inline assembly** v souboru `xlogin00.s` (změňte `ASM_TYPE` na `CLEAR_ASM`). Pokud použijete intrinsic funkce, budete řešit zadání v jednodušší variantě, a projekt bude hodnocen přísněji. ## Struktura dat @@ -47,6 +47,16 @@ Odevzdávat budete následující soubory: - `xlogin00.s` - `dokumentace.pdf` + +## Použití velkých jazykových modelů (ChatGPT, ....). + +Během řešení projektu můžete využít jazykové modely za následujících podmínek: budou použity pouze na části kódu, danému kódu budete rozumět a v dokumentaci uvedete, k čemu jste jazykový model použili. + +## Obhajoba + +Na poslední cvičení bude obhajoba projektu, cílem je ukázat, že projektu rozumíte a víte, co jednotlivé části kódu dělají. V případě, že nebudete schopni vysvětlit, co váš kód dělá, bude to mít negativní vliv na hodnocení. + + ## Překlad a spuštění ### Windows + VS Code @@ -63,3 +73,11 @@ Pro **Debian-based OS** (Ubuntu, Debian): sudo apt update sudo apt install freeglut3-dev libglew-dev libsoil-dev libgl-dev libglu-dev ``` + +V případě, že používaté VS Code na linuxu, povolte si v nastavení (Preferences) přidávání breakpoint do neznámých souboru (volba Allow Breakpoints Everywhere). + + +## Bug, bugs,.... + +Pokud narazíte na problém, napište na goldmann@fit.vutbr.cz. + diff --git a/linux/.vscode/c_cpp_properties.json b/linux/.vscode/c_cpp_properties.json index 59db46d..eb8f029 100644 --- a/linux/.vscode/c_cpp_properties.json +++ b/linux/.vscode/c_cpp_properties.json @@ -1,20 +1,15 @@ { "configurations": [ { - "name": "Win32", + "name": "Linux", "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}\\..\\include" + "${workspaceFolder}/include" ], - "defines": [ - "_DEBUG", - "UNICODE", - "_UNICODE" - ], - "compilerPath": "${workspaceFolder}\\..\\mingw64\\bin\\g++.exe", - "cStandard": "c11", - "cppStandard": "c++17", - "intelliSenseMode": "gcc-x64" + "defines": [], + "compilerPath": "/usr/bin/gcc", + "cStandard": "c17", + "cppStandard": "c++14", + "intelliSenseMode": "linux-clang-x64" } ], "version": 4 diff --git a/linux/.vscode/launch.json b/linux/.vscode/launch.json index 1ba2bc8..9dde925 100644 --- a/linux/.vscode/launch.json +++ b/linux/.vscode/launch.json @@ -5,7 +5,7 @@ "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", - "program": "boat_sim", + "program": "${workspaceFolder}/./boat_sim", "args": [], "stopAtEntry": true, "cwd": "${workspaceFolder}", diff --git a/linux/.vscode/tasks.json b/linux/.vscode/tasks.json index 863c1fe..22b8ebf 100644 --- a/linux/.vscode/tasks.json +++ b/linux/.vscode/tasks.json @@ -29,7 +29,7 @@ { "label": "Run", "type": "shell", - "command": "boat_sim", + "command": "make run", "options": { "cwd": "${workspaceFolder}" }, diff --git a/linux/Makefile b/linux/Makefile index 1088654..fe1349c 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -4,9 +4,10 @@ CXX = g++ CXXFLAGS = -Wall -g -mavx -msse4 # -Wall for more warnings, -g for debugging symbols INC_DIR = include -LIBS = -lfreeglut -lglew32 -lSOIL -lopengl32 -lglu32 -LIB_DIR = ..\libs -LDFLAGS = -L$(LIB_DIR) +LIBS = -lglut -lSOIL -lGL -lGLEW -lGLU +LIB_DIRS = /usr/lib /usr/lib/x86_64-linux-gnu + +LDFLAGS = $(addprefix -L, $(LIB_DIRS)) # Directories SRC_DIR = src @@ -45,7 +46,7 @@ $(BUILD_DIR)/%.o: $(SRC_DIR)/%.s # Clean target clean: - rm -rf $(BUILD_DIR) + rm $(BUILD_DIR)/* # Debug build target debug: CXXFLAGS += -DDEBUG -g @@ -58,4 +59,4 @@ run: all rundebug: debug gdb ./$(EXECUTABLE_PATH) -.PHONY: all clean debug run rundebug \ No newline at end of file +.PHONY: all clean debug run rundebug