Examples makefiles to support setting single target via ISPC_IA_TARGETS
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
EXAMPLE=ao
|
EXAMPLE=ao
|
||||||
CPP_SRC=ao.cpp ao_serial.cpp
|
CPP_SRC=ao.cpp ao_serial.cpp
|
||||||
ISPC_SRC=ao.ispc
|
ISPC_SRC=ao.ispc
|
||||||
ISPC_IA_TARGETS=sse2,sse4,avx
|
ISPC_IA_TARGETS=sse2-i32x4,sse4-i32x4,avx1-i32x8,avx2-i32x8
|
||||||
ISPC_ARM_TARGETS=neon
|
ISPC_ARM_TARGETS=neon
|
||||||
|
|
||||||
include ../common.mk
|
include ../common.mk
|
||||||
|
|||||||
@@ -16,8 +16,26 @@ ISPC_HEADER=objs/$(ISPC_SRC:.ispc=_ispc.h)
|
|||||||
ARCH:=$(shell uname -m | sed -e s/x86_64/x86/ -e s/i686/x86/ -e s/arm.*/arm/ -e s/sa110/arm/)
|
ARCH:=$(shell uname -m | sed -e s/x86_64/x86/ -e s/i686/x86/ -e s/arm.*/arm/ -e s/sa110/arm/)
|
||||||
|
|
||||||
ifeq ($(ARCH),x86)
|
ifeq ($(ARCH),x86)
|
||||||
ISPC_OBJS=$(addprefix objs/, $(ISPC_SRC:.ispc=)_ispc.o $(ISPC_SRC:.ispc=)_ispc_sse2.o \
|
ISPC_OBJS=$(addprefix objs/, $(ISPC_SRC:.ispc=)_ispc.o)
|
||||||
$(ISPC_SRC:.ispc=)_ispc_sse4.o $(ISPC_SRC:.ispc=)_ispc_avx.o)
|
COMMA=,
|
||||||
|
ifneq (,$(findstring $(COMMA),$(ISPC_IA_TARGETS)))
|
||||||
|
#$(info multi-target detected: $(ISPC_IA_TARGETS))
|
||||||
|
ifneq (,$(findstring sse2-,$(ISPC_IA_TARGETS)))
|
||||||
|
ISPC_OBJS+=$(addprefix objs/, $(ISPC_SRC:.ispc=)_ispc_sse2.o)
|
||||||
|
endif
|
||||||
|
ifneq (,$(findstring sse4-,$(ISPC_IA_TARGETS)))
|
||||||
|
ISPC_OBJS+=$(addprefix objs/, $(ISPC_SRC:.ispc=)_ispc_sse4.o)
|
||||||
|
endif
|
||||||
|
ifneq (,$(findstring avx1-,$(ISPC_IA_TARGETS)))
|
||||||
|
ISPC_OBJS+=$(addprefix objs/, $(ISPC_SRC:.ispc=)_ispc_avx.o)
|
||||||
|
endif
|
||||||
|
ifneq (,$(findstring avx1.1-,$(ISPC_IA_TARGETS)))
|
||||||
|
ISPC_OBJS+=$(addprefix objs/, $(ISPC_SRC:.ispc=)_ispc_avx11.o)
|
||||||
|
endif
|
||||||
|
ifneq (,$(findstring avx2-,$(ISPC_IA_TARGETS)))
|
||||||
|
ISPC_OBJS+=$(addprefix objs/, $(ISPC_SRC:.ispc=)_ispc_avx2.o)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
ISPC_TARGETS=$(ISPC_IA_TARGETS)
|
ISPC_TARGETS=$(ISPC_IA_TARGETS)
|
||||||
ARCH_BIT:=$(shell getconf LONG_BIT)
|
ARCH_BIT:=$(shell getconf LONG_BIT)
|
||||||
ifeq ($(ARCH_BIT),32)
|
ifeq ($(ARCH_BIT),32)
|
||||||
@@ -68,7 +86,7 @@ objs/%.o: ../%.cpp dirs
|
|||||||
|
|
||||||
objs/$(EXAMPLE).o: objs/$(EXAMPLE)_ispc.h
|
objs/$(EXAMPLE).o: objs/$(EXAMPLE)_ispc.h
|
||||||
|
|
||||||
objs/%_ispc.h objs/%_ispc.o objs/%_ispc_sse2.o objs/%_ispc_sse4.o objs/%_ispc_avx.o: %.ispc
|
objs/%_ispc.h objs/%_ispc.o objs/%_ispc_sse2.o objs/%_ispc_sse4.o objs/%_ispc_avx.o objs/%_ispc_avx11.o objs/%_ispc_avx2.o: %.ispc
|
||||||
$(ISPC) $(ISPC_FLAGS) --target=$(ISPC_TARGETS) $< -o objs/$*_ispc.o -h objs/$*_ispc.h
|
$(ISPC) $(ISPC_FLAGS) --target=$(ISPC_TARGETS) $< -o objs/$*_ispc.o -h objs/$*_ispc.h
|
||||||
|
|
||||||
objs/$(ISPC_SRC:.ispc=)_sse4.cpp: $(ISPC_SRC)
|
objs/$(ISPC_SRC:.ispc=)_sse4.cpp: $(ISPC_SRC)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
EXAMPLE=deferred_shading
|
EXAMPLE=deferred_shading
|
||||||
CPP_SRC=common.cpp main.cpp dynamic_c.cpp dynamic_cilk.cpp
|
CPP_SRC=common.cpp main.cpp dynamic_c.cpp dynamic_cilk.cpp
|
||||||
ISPC_SRC=kernels.ispc
|
ISPC_SRC=kernels.ispc
|
||||||
ISPC_IA_TARGETS=sse2,sse4-x2,avx-x2
|
ISPC_IA_TARGETS=sse2-i32x4,sse4-i32x8,avx1-i32x16,avx2-i32x16
|
||||||
ISPC_ARM_TARGETS=neon
|
ISPC_ARM_TARGETS=neon
|
||||||
ISPC_FLAGS=--opt=fast-math
|
ISPC_FLAGS=--opt=fast-math
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ EXAMPLE=gmres
|
|||||||
CPP_SRC=algorithm.cpp main.cpp matrix.cpp
|
CPP_SRC=algorithm.cpp main.cpp matrix.cpp
|
||||||
CC_SRC=mmio.c
|
CC_SRC=mmio.c
|
||||||
ISPC_SRC=matrix.ispc
|
ISPC_SRC=matrix.ispc
|
||||||
ISPC_IA_TARGETS=sse2,sse4-x2,avx-x2
|
ISPC_IA_TARGETS=sse2-i32x4,sse4-i32x8,avx1-i32x16,avx2-i32x16
|
||||||
ISPC_ARM_TARGETS=neon
|
ISPC_ARM_TARGETS=neon
|
||||||
|
|
||||||
include ../common.mk
|
include ../common.mk
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
EXAMPLE=mandelbrot
|
EXAMPLE=mandelbrot
|
||||||
CPP_SRC=mandelbrot.cpp mandelbrot_serial.cpp
|
CPP_SRC=mandelbrot.cpp mandelbrot_serial.cpp
|
||||||
ISPC_SRC=mandelbrot.ispc
|
ISPC_SRC=mandelbrot.ispc
|
||||||
ISPC_IA_TARGETS=sse2,sse4-x2,avx-x2
|
ISPC_IA_TARGETS=sse2-i32x4,sse4-i32x8,avx1-i32x16,avx2-i32x16
|
||||||
ISPC_ARM_TARGETS=neon
|
ISPC_ARM_TARGETS=neon
|
||||||
|
|
||||||
include ../common.mk
|
include ../common.mk
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
EXAMPLE=mandelbrot_tasks
|
EXAMPLE=mandelbrot_tasks
|
||||||
CPP_SRC=mandelbrot_tasks.cpp mandelbrot_tasks_serial.cpp
|
CPP_SRC=mandelbrot_tasks.cpp mandelbrot_tasks_serial.cpp
|
||||||
ISPC_SRC=mandelbrot_tasks.ispc
|
ISPC_SRC=mandelbrot_tasks.ispc
|
||||||
ISPC_IA_TARGETS=sse2,sse4-x2,avx-x2
|
ISPC_IA_TARGETS=sse2-i32x4,sse4-i32x8,avx1-i32x16,avx2-i32x16
|
||||||
ISPC_ARM_TARGETS=neon
|
ISPC_ARM_TARGETS=neon
|
||||||
|
|
||||||
include ../common.mk
|
include ../common.mk
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
EXAMPLE=noise
|
EXAMPLE=noise
|
||||||
CPP_SRC=noise.cpp noise_serial.cpp
|
CPP_SRC=noise.cpp noise_serial.cpp
|
||||||
ISPC_SRC=noise.ispc
|
ISPC_SRC=noise.ispc
|
||||||
ISPC_IA_TARGETS=sse2,sse4,avx-x2
|
ISPC_IA_TARGETS=sse2-i32x4,sse4-i32x4,avx1-i32x16,avx2-i32x16
|
||||||
ISPC_ARM_TARGETS=neon
|
ISPC_ARM_TARGETS=neon
|
||||||
|
|
||||||
include ../common.mk
|
include ../common.mk
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
EXAMPLE=options
|
EXAMPLE=options
|
||||||
CPP_SRC=options.cpp options_serial.cpp
|
CPP_SRC=options.cpp options_serial.cpp
|
||||||
ISPC_SRC=options.ispc
|
ISPC_SRC=options.ispc
|
||||||
ISPC_IA_TARGETS=sse2,sse4-x2,avx-x2
|
ISPC_IA_TARGETS=sse2-i32x4,sse4-i32x8,avx1-i32x16,avx2-i32x16
|
||||||
ISPC_ARM_TARGETS=neon
|
ISPC_ARM_TARGETS=neon
|
||||||
|
|
||||||
include ../common.mk
|
include ../common.mk
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
EXAMPLE=perbench
|
EXAMPLE=perbench
|
||||||
CPP_SRC=perfbench.cpp perfbench_serial.cpp
|
CPP_SRC=perfbench.cpp perfbench_serial.cpp
|
||||||
ISPC_SRC=perfbench.ispc
|
ISPC_SRC=perfbench.ispc
|
||||||
ISPC_IA_TARGETS=sse2,sse4,avx
|
ISPC_IA_TARGETS=sse2-i32x4,sse4-i32x4,avx1-i32x8,avx2-i32x8
|
||||||
ISPC_ARM_TARGETS=neon
|
ISPC_ARM_TARGETS=neon
|
||||||
|
|
||||||
include ../common.mk
|
include ../common.mk
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
EXAMPLE=rt
|
EXAMPLE=rt
|
||||||
CPP_SRC=rt.cpp rt_serial.cpp
|
CPP_SRC=rt.cpp rt_serial.cpp
|
||||||
ISPC_SRC=rt.ispc
|
ISPC_SRC=rt.ispc
|
||||||
ISPC_IA_TARGETS=sse2,sse4-x2,avx
|
ISPC_IA_TARGETS=sse2-i32x4,sse4-i32x8,avx1-i32x8,avx2-i32x8
|
||||||
ISPC_ARM_TARGETS=neon
|
ISPC_ARM_TARGETS=neon
|
||||||
|
|
||||||
include ../common.mk
|
include ../common.mk
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
EXAMPLE=sort
|
EXAMPLE=sort
|
||||||
CPP_SRC=sort.cpp sort_serial.cpp
|
CPP_SRC=sort.cpp sort_serial.cpp
|
||||||
ISPC_SRC=sort.ispc
|
ISPC_SRC=sort.ispc
|
||||||
ISPC_IA_TARGETS=sse2,sse4-x2,avx
|
ISPC_IA_TARGETS=sse2-i32x4,sse4-i32x8,avx1-i32x8,avx2-i32x8
|
||||||
ISPC_ARM_TARGETS=neon
|
ISPC_ARM_TARGETS=neon
|
||||||
#ISPC_FLAGS=-DDEBUG
|
#ISPC_FLAGS=-DDEBUG
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
EXAMPLE=stencil
|
EXAMPLE=stencil
|
||||||
CPP_SRC=stencil.cpp stencil_serial.cpp
|
CPP_SRC=stencil.cpp stencil_serial.cpp
|
||||||
ISPC_SRC=stencil.ispc
|
ISPC_SRC=stencil.ispc
|
||||||
ISPC_IA_TARGETS=sse2,sse4-x2,avx-x2
|
ISPC_IA_TARGETS=sse2-i32x4,sse4-i32x8,avx1-i32x16,avx2-i32x16
|
||||||
ISPC_ARM_TARGETS=neon
|
ISPC_ARM_TARGETS=neon
|
||||||
|
|
||||||
include ../common.mk
|
include ../common.mk
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
EXAMPLE=volume
|
EXAMPLE=volume
|
||||||
CPP_SRC=volume.cpp volume_serial.cpp
|
CPP_SRC=volume.cpp volume_serial.cpp
|
||||||
ISPC_SRC=volume.ispc
|
ISPC_SRC=volume.ispc
|
||||||
ISPC_IA_TARGETS=sse2,sse4-x2,avx
|
ISPC_IA_TARGETS=sse2-i32x4,sse4-i32x8,avx1-i32x8,avx2-i32x8
|
||||||
ISPC_ARM_TARGETS=neon
|
ISPC_ARM_TARGETS=neon
|
||||||
|
|
||||||
include ../common.mk
|
include ../common.mk
|
||||||
|
|||||||
Reference in New Issue
Block a user