helper scripts updated

This commit is contained in:
Nicolas 2025-11-10 20:09:54 +01:00
parent b8613f3d98
commit d2db667741
5 changed files with 61 additions and 43 deletions

View File

@ -1,30 +1,36 @@
echo ------------------------------
python stencils/generate_stencils.py bin/stencils.c
echo -------------x86_64 - 64 bit-----------------
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
echo - Compile stencil test...
cl /Zi /Od stencils\test.c /Fe:bin\test.exe
echo - Build runner for Windows 64 bit...
cl /Zi /Od /DENABLE_BASIC_LOGGING src\coparun\runmem.c src\coparun\coparun.c src\coparun\mem_man.c /Fe:bin\coparun.exe
REM Optimized:
REM cl /O2 src\coparun\runmem.c src\coparun\coparun.c src\coparun\mem_man.c /Fe:bin\coparun.exe
echo - Build stencils for Windows 64 bit...
python stencils/generate_stencils.py --abi ms bin/stencils.c
wsl gcc -fno-pic -c bin/stencils.c -O3 -o src/copapy/obj/stencils_AMD64_O3.o
echo - Build stencils for 64 bit...
wsl gcc -fno-pic -c bin/stencils.c -O3 -o src/copapy/obj/stencils_x86_64_O3.o
echo ------------------------------
echo ---------------x86 - 32 bit---------------
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x86
echo - Build runner for Windows 32 bit...
cl /Zi /Od /DENABLE_BASIC_LOGGING src\coparun\runmem.c src\coparun\coparun.c src\coparun\mem_man.c /Fe:bin\coparun-x86.exe
echo - Build stencils for Windows 32 bit...
echo - Build runner for linux x86 32 bit...
wsl gcc -m32 -static -Wall -Wextra -Wconversion -Wsign-conversion -Wshadow -Wstrict-overflow -O3 -DENABLE_LOGGING src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c -o bin/coparun-i686
echo - Build stencils x86 32 bit...
wsl gcc -m32 -fno-pic -c bin/stencils.c -O3 -o src/copapy/obj/stencils_x86_O3.o
echo ------------------------------
echo --------------arm64 64 bit----------------
echo - Build stencils for aarch64...
python stencils/generate_stencils.py bin/stencils.c
wsl aarch64-linux-gnu-gcc -fno-pic -c bin/stencils.c -O3 -o src/copapy/obj/stencils_aarch64_O3.o
wsl aarch64-linux-gnu-gcc -fno-pic -c bin/stencils.c -O3 -o src/copapy/obj/stencils_arm64_O3.o
echo ------------------------------
echo - Build runner for Aarch64...
wsl aarch64-linux-gnu-gcc -static -Wall -Wextra -Wconversion -Wsign-conversion -Wshadow -Wstrict-overflow -O3 -DENABLE_LOGGING src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c -o bin/coparun-aarch64
wsl aarch64-linux-gnu-gcc -static -Wall -Wextra -Wconversion -Wsign-conversion -Wshadow -Wstrict-overflow -O3 -DENABLE_LOGGING src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c -o bin/coparun-aarch64

View File

@ -13,29 +13,19 @@ mkdir -p $DEST
# -------------- Compile stencils --------------
# Windows x86_64 (ARM64)
python3 stencils/generate_stencils.py --abi ms $SRC
gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_AMD64_$OPT.o
# Windows x86
gcc-13 $FLAGS -m32 -$OPT -c $SRC -o $DEST/stencils_x86_$OPT.o
# Native x86_64
python3 stencils/generate_stencils.py $SRC
# x86_64
gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_x86_64_$OPT.o
# Native i686
cp $DEST/stencils_x86_$OPT.o $DEST/stencils_i686_$OPT.o
# x86 - 32 bit
gcc-13 $FLAGS -m32 -$OPT -c $SRC -o $DEST/stencils_x86_$OPT.o
# ARM64 linux (aarch64)
aarch64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_aarch64_$OPT.o
# ARM64 macos (copy aarch64)
cp $DEST/stencils_aarch64_$OPT.o $DEST/stencils_arm64_$OPT.o
aarch64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_arm64_$OPT.o
# ARMv7
arm-linux-gnueabihf-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_armv7_$OPT.o
arm-linux-gnueabihf-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_arm_$OPT.o
# PowerPC64LE
# powerpc64le-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_ppc64le_$OPT.o
@ -50,7 +40,7 @@ mips-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_mips_$OPT.o
mipsel-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_mipsel_$OPT.o
# RISCV 32 Bit
# riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -march=rv32imac -mabi=ilp32 -c $SRC -o $DEST/stencils_riscv32_$OPT.o
# riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -march=rv32imac -mabi=ilp32 -c $SRC -o $DEST/stencils_riscv_$OPT.o
# RISCV 64 Bit
riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_riscv64_$OPT.o

View File

@ -1,13 +1,16 @@
python tools/make_example.py
REM python tools/extract_code.py "bin/test.copapy" "bin/test.copapy.bin"
wsl qemu-aarch64 bin/coparun-aarch64 bin/test-aarch64.copapy bin/test-aarch64.copapy.bin
wsl aarch64-linux-gnu-objdump -D -b binary -m aarch64 --adjust-vma=0x5000 bin/test-aarch64.copapy.bin
REM wsl qemu-aarch64 bin/coparun-aarch64 bin/test-aarch64.copapy bin/test-aarch64.copapy.bin
REM wsl aarch64-linux-gnu-objdump -D -b binary -m aarch64 --adjust-vma=0x5000 bin/test-aarch64.copapy.bin
python tools/extract_code.py "bin/test-aarch64.copapy" "bin/test-aarch64.copapy2.bin"
wsl aarch64-linux-gnu-objdump -D -b binary -m aarch64 --adjust-vma=0x5000 bin/test-aarch64.copapy2.bin
REM wsl aarch64-linux-gnu-objdump -D -b binary -m aarch64 --adjust-vma=0x5000 bin/test-aarch64.copapy2.bin
REM wsl objdump -D -b binary -m i386:x86-64 --adjust-vma=0x1000 bin/test.copapy.bin
bin\coparun bin/test.copapy bin/test.copapy.bin
wsl objdump -D -b binary -m i386:x86-64 --adjust-vma=0x500000 bin/test.copapy.bin
REM wsl aarch64-linux-gnu-objdump -d -x src/copapy/obj/stencils_aarch64_O3.o
REM wsl aarch64-linux-gnu-objdump -d -x src/copapy/obj/stencils_arm64_O3.o
REM wsl objdump -D -b binary -m i8086 --adjust-vma=0x5000 bin/test-x86.copapy.bin
REM wsl objdump -D -b binary -m i386 --adjust-vma=0x5000 bin/test-x86.copapy.bin
REM wsl objdump -d -x src/copapy/obj/stencils_x86_O3.o

View File

@ -1,6 +1,7 @@
from copapy import variable
from copapy.backend import Write, compile_to_dag, stencil_db_from_package
from copapy._binwrite import Command
import copapy as cp
def compile_to_x86_64() -> None:
@ -26,6 +27,30 @@ def compile_to_x86_64() -> None:
dw.to_file('bin/test.copapy')
def compile_to_x86() -> None:
"""Test compilation of a simple program for x86 32 bit."""
c1 = variable(9.0)
#ret = [c1 / 4, c1 / -4, c1 // 4, c1 // -4, (c1 * -1) // 4]
ret = [c1 // 3.3 + 5]
#ret = [cp.sqrt(c1)]
#c2 = cp._math.get_42()
#ret = [c2]
ret = [cp.sin(variable(2.5))]
out = [Write(r) for r in ret]
sdb = stencil_db_from_package('x86')
dw, _ = compile_to_dag(out, sdb)
dw.write_com(Command.DUMP_CODE)
print('* Data to runner:')
dw.print()
dw.to_file('bin/test-x86.copapy')
def compile_to_aarch64() -> None:
"""Test compilation of a simple program for aarch64."""
c1 = variable(9.0)
@ -38,7 +63,7 @@ def compile_to_aarch64() -> None:
out = [Write(r) for r in ret]
sdb = stencil_db_from_package('aarch64')
sdb = stencil_db_from_package('arm64')
dw, _ = compile_to_dag(out, sdb)
dw.write_com(Command.DUMP_CODE)
@ -51,4 +76,5 @@ def compile_to_aarch64() -> None:
if __name__ == "__main__":
compile_to_x86_64()
compile_to_x86()
compile_to_aarch64()

View File

@ -14,10 +14,3 @@ gcc-12 $FLAGS -c $SRC -O0 -o $DEST/stencils_x86_64_O0.o
gcc-12 $FLAGS -c $SRC -O1 -o $DEST/stencils_x86_64_O1.o
gcc-12 $FLAGS -c $SRC -O2 -o $DEST/stencils_x86_64_O2.o
gcc-12 $FLAGS -c $SRC -O3 -o $DEST/stencils_x86_64_O3.o
python stencils/generate_stencils.py --abi ms $SRC
gcc-12 $FLAGS -c $SRC -O0 -o $DEST/stencils_AMD64_O0.o
gcc-12 $FLAGS -c $SRC -O1 -o $DEST/stencils_AMD64_O1.o
gcc-12 $FLAGS -c $SRC -O2 -o $DEST/stencils_AMD64_O2.o
gcc-12 $FLAGS -c $SRC -O3 -o $DEST/stencils_AMD64_O3.o