Modified Makefile for Linux and updated Visual Studio project files for Linux support, Added infromation to README

master
Tomáš Goldmann 2 weeks ago
parent 5029165272
commit b993547e4e

5
.gitignore vendored

@ -0,0 +1,5 @@
linux/build
windows/build
linux/boat_sim
windows/boat_sim.exe

@ -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**. 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 ## Struktura dat
@ -47,6 +47,16 @@ Odevzdávat budete následující soubory:
- `xlogin00.s` - `xlogin00.s`
- `dokumentace.pdf` - `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í ## Překlad a spuštění
### Windows + VS Code ### Windows + VS Code
@ -63,3 +73,11 @@ Pro **Debian-based OS** (Ubuntu, Debian):
sudo apt update sudo apt update
sudo apt install freeglut3-dev libglew-dev libsoil-dev libgl-dev libglu-dev 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.

@ -1,20 +1,15 @@
{ {
"configurations": [ "configurations": [
{ {
"name": "Win32", "name": "Linux",
"includePath": [ "includePath": [
"${workspaceFolder}/**", "${workspaceFolder}/include"
"${workspaceFolder}\\..\\include"
], ],
"defines": [ "defines": [],
"_DEBUG", "compilerPath": "/usr/bin/gcc",
"UNICODE", "cStandard": "c17",
"_UNICODE" "cppStandard": "c++14",
], "intelliSenseMode": "linux-clang-x64"
"compilerPath": "${workspaceFolder}\\..\\mingw64\\bin\\g++.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
} }
], ],
"version": 4 "version": 4

@ -5,7 +5,7 @@
"name": "(gdb) Launch", "name": "(gdb) Launch",
"type": "cppdbg", "type": "cppdbg",
"request": "launch", "request": "launch",
"program": "boat_sim", "program": "${workspaceFolder}/./boat_sim",
"args": [], "args": [],
"stopAtEntry": true, "stopAtEntry": true,
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",

@ -29,7 +29,7 @@
{ {
"label": "Run", "label": "Run",
"type": "shell", "type": "shell",
"command": "boat_sim", "command": "make run",
"options": { "options": {
"cwd": "${workspaceFolder}" "cwd": "${workspaceFolder}"
}, },

@ -4,9 +4,10 @@
CXX = g++ CXX = g++
CXXFLAGS = -Wall -g -mavx -msse4 # -Wall for more warnings, -g for debugging symbols CXXFLAGS = -Wall -g -mavx -msse4 # -Wall for more warnings, -g for debugging symbols
INC_DIR = include INC_DIR = include
LIBS = -lfreeglut -lglew32 -lSOIL -lopengl32 -lglu32 LIBS = -lglut -lSOIL -lGL -lGLEW -lGLU
LIB_DIR = ..\libs LIB_DIRS = /usr/lib /usr/lib/x86_64-linux-gnu
LDFLAGS = -L$(LIB_DIR)
LDFLAGS = $(addprefix -L, $(LIB_DIRS))
# Directories # Directories
SRC_DIR = src SRC_DIR = src
@ -45,7 +46,7 @@ $(BUILD_DIR)/%.o: $(SRC_DIR)/%.s
# Clean target # Clean target
clean: clean:
rm -rf $(BUILD_DIR) rm $(BUILD_DIR)/*
# Debug build target # Debug build target
debug: CXXFLAGS += -DDEBUG -g debug: CXXFLAGS += -DDEBUG -g
@ -58,4 +59,4 @@ run: all
rundebug: debug rundebug: debug
gdb ./$(EXECUTABLE_PATH) gdb ./$(EXECUTABLE_PATH)
.PHONY: all clean debug run rundebug .PHONY: all clean debug run rundebug

Loading…
Cancel
Save