Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ run:
./$(USM_EXE_NAME)

run_buffers:
./$(BBUFFER_EXE_NAME)
./$(BUFFER_EXE_NAME)

clean:
rm -rf $(USM_EXE_NAME) $(BUFFER_EXE_NAME)
67 changes: 37 additions & 30 deletions DirectProgramming/DPC++/DenseLinearAlgebra/simple-add/Makefile.fpga
Original file line number Diff line number Diff line change
@@ -1,60 +1,67 @@
CXX := dpcpp
CXXFLAGS = -O2 -g -std=c++17

SRC := src/simple-add-usm.cpp
BUFFERS_SRC := src/simple-add-buffers.cpp
USM_SRC := src/simple-add-usm.cpp
SRC := src/simple-add-buffers.cpp

.PHONY: fpga_emu run_emu clean
.PHONY: hw hw_usm fpga_emu fpga_emu_usm run_emu run_emu_usm clean

fpga_emu_buffers: simple-add-buffers.fpga_emu_buffers
fpga_emu: simple-add-usm.fpga_emu
fpga_emu: simple-add-buffers.fpga_emu
fpga_emu_usm: simple-add-usm.fpga_emu_usm

hw_buffers: simple-add-buffers.fpga
hw: simple-add-usm.fpga
hw: simple-add-buffers.fpga
hw_usm: simple-add-usm.fpga

report_buffers: simple-add-buffers_report.a_buffers
report: simple-add-usm_report.a
report: simple-add-buffers_report.a_buffers
report_usm: simple-add-usm_report.a_usm

simple-add-buffers.fpga_emu_buffers: $(BUFFERS_SRC)
simple-add-buffers.fpga_emu: $(SRC)
$(CXX) $(CXXFLAGS) -fintelfpga $^ -o $@ -DFPGA_EMULATOR=1
simple-add-usm.fpga_emu: $(SRC)
$(CXX) $(CXXFLAGS) -fintelfpga $^ -o $@ -DFPGA_EMULATOR=1
simple-add-usm.fpga_emu_usm: $(USM_SRC)
@#$(CXX) $(CXXFLAGS) -fintelfpga $^ -o $@ -DFPGA_EMULATOR=1
@echo USM is not supported for FPGAs, yet


a_buffers.o: $(BUFFERS_SRC)
$(CXX) $(CXXFLAGS) -fintelfpga -c $^ -o $@ -DFPGA=1
a.o: $(SRC)
a_buffers.o: $(SRC)
$(CXX) $(CXXFLAGS) -fintelfpga -c $^ -o $@ -DFPGA=1
a_usm.o: $(USM_SRC)
@#$(CXX) $(CXXFLAGS) -fintelfpga -c $^ -o $@ -DFPGA=1
@echo USM is not supported for FPGAs, yet


simple-add-buffers.fpga: a_buffers.o
$(CXX) $(CXXFLAGS) -fintelfpga $^ -o $@ -Xshardware
simple-add-usm.fpga: a.o
$(CXX) $(CXXFLAGS) -fintelfpga $^ -o $@ -Xshardware
simple-add-usm.fpga: a_usm.o
@#$(CXX) $(CXXFLAGS) -fintelfpga $^ -o $@ -Xshardware
@echo USM is not supported for FPGAs, yet

run_emu_buffers: simple-add-buffers.fpga_emu_buffers
./simple-add-buffers.fpga_emu_buffers
run_emu: simple-add-usm.fpga_emu
./simple-add-usm.fpga_emu
run_emu: simple-add-buffers.fpga_emu
./simple-add-buffers.fpga_emu
run_emu_usm: simple-add-usm.fpga_emu_usm
@#./simple-add-usm.fpga_emu_usm
@echo USM is not supported for FPGAs, yet


run_hw_buffers: simple-add-buffers.fpga
run_hw: simple-add-buffers.fpga
./simple-add-buffers.fpga
run_hw: simple-add-usm.fpga
./simple-add-usm.fpga
run_hw_usm: simple-add-usm.fpga
@#./simple-add-usm.fpga
@echo USM is not supported for FPGAs, yet


dev_buffers.o: $(BUFFERS_SRC)
$(CXX) $(CXXFLAGS) -fintelfpga -c $^ -o $@ -DFPGA=1
dev.o: $(SRC)
dev_buffers.o: $(SRC)
$(CXX) $(CXXFLAGS) -fintelfpga -c $^ -o $@ -DFPGA=1
dev_usm.o: $(USM_SRC)
@#$(CXX) $(CXXFLAGS) -fintelfpga -c $^ -o $@ -DFPGA=1
@echo USM is not supported for FPGAs, yet


simple-add-buffers_report.a_buffers: dev_buffers.o
$(CXX) $(CXXFLAGS) -fintelfpga -fsycl-link $^ -o $@ -Xshardware
simple-add-usm_report.a: dev.o
$(CXX) $(CXXFLAGS) -fintelfpga -fsycl-link $^ -o $@ -Xshardware
simple-add-usm_report.a_usm: dev_usm.o
@#$(CXX) $(CXXFLAGS) -fintelfpga -fsycl-link $^ -o $@ -Xshardware
@echo USM is not supported for FPGAs, yet


clean:
rm -rf *.o *.d *.out *.mon *.emu *.aocr *.aoco *.prj *.fpga_emu *.fpga_emu_buffers simple-add-buffers.fpga simple-add-usm.fpga *.a
rm -rf *.o *.d *.out *.mon *.emu *.aocr *.aoco *.prj *.fpga_emu *.fpga_emu_usm simple-add-buffers.fpga simple-add-usm.fpga *.a
40 changes: 25 additions & 15 deletions DirectProgramming/DPC++/DenseLinearAlgebra/simple-add/Makefile.win
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
CXX = dpcpp-cl
CXXFLAGS = -O2 -EHsc -Zi
EXE_NAME = simple-add-usm.exe
SOURCES = src/simple-add-usm.cpp

all: main

main:
$(CXX) $(CXXFLAGS) -o $(EXE_NAME) $(SOURCES)

run:
$(EXE_NAME)

clean:
del -rf $(EXE_NAME)
CXX = dpcpp-cl
CXXFLAGS = -O2 -EHsc -Zi

EXE_NAME = simple-add-usm.exe
SOURCES = src/simple-add-usm.cpp

BUFFERS_EXE_NAME = simple-add-buffers.exe
BUFFERS_SOURCES = src/simple-add-buffers.cpp

all: main

main:
$(CXX) $(CXXFLAGS) -o $(EXE_NAME) $(SOURCES)

build_buffers:
$(CXX) $(CXXFLAGS) -o $(BUFFERS_EXE_NAME) $(BUFFERS_SOURCES)

run:
$(EXE_NAME)

run_buffers:
$(BUFFERS_EXE_NAME)

clean:
del -rf $(EXE_NAME) $(BUFFERS_EXE_NAME)
Original file line number Diff line number Diff line change
@@ -1,15 +1,26 @@
CXX = dpcpp-cl
CXXFLAGS = -O2 -EHsc -Zi
SOURCES = src/simple-add-usm.cpp
EXE_NAME_FPGA_EMU = simple-add-usm.fpga_emu.exe
LDFLAGS =

SRC = src/simple-add-buffers.cpp
USM_SRC = src/simple-add-usm.cpp

EXE = simple-add-buffers.fpga_emu.exe
USM_EXE = simple-add-usm.fpga_emu_usm.exe

all: fpga_emu

fpga_emu:
$(CXX) $(CXXFLAGS) -fintelfpga $(SOURCES) -o $(EXE_NAME_FPGA_EMU) -DFPGA_EMULATOR=1
fpga_emu: $(SRC)
$(CXX) $(CXXFLAGS) -fintelfpga $(SRC) -o $(EXE) -DFPGA_EMULATOR=1

fpga_emu_usm: $(SRC)
@echo USM is not supported for FPGAs, yet

run:
$(EXE_NAME_FPGA_EMU)
$(EXE)

run_usm:
@echo USM is not supported for FPGAs, yet

clean:
del -rf $(EXE_NAME_FPGA_EMU)
del /f *.o *.d *.out *.mon *.emu *.aocr *.aoco *.prj *.fpga_emu *.fpga_emu_usm *.a $(EXE) $(USM_EXE)
13 changes: 4 additions & 9 deletions DirectProgramming/DPC++/DenseLinearAlgebra/simple-add/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ This code sample is licensed under MIT license.

## Building the `simple add DPC++` Program for CPU and GPU

## Include Files
The include folder is located at %ONEAPI_ROOT%\dev-utilities\latest\include on your development system".

### On a Linux* System
Perform the following steps:
1. Build the `simple-add-dpc++` program using the following make commands (default uses USM):
Expand Down Expand Up @@ -123,15 +126,7 @@ Perform the following steps:
2. Select the menu sequence **File** > **Open** > **Project/Solution**.
3. Locate the `simple-add` folder.
4. Select the `simple-add.sln` file.
5. Select the configuration 'Debug-fpga' or 'Release-fpga' that have the necessary project settings already below:

Under the 'Project Property' dialog:

a. Select the **DPC++** tab.
b. In the **General** subtab, the **Perform ahead of time compilation for the FPGA** setting is set to **Yes**.
c. In the **Preprocessor** subtab, the **Preprocessor Definitions" setting has **FPGA_EMULATOR** added.
d. Close the dialog.

5. Select the configuration 'Debug-fpga'
6. Select **Project** > **Build** menu option to build the selected configuration.
7. Select **Debug** > **Start Without Debugging** menu option to run the program.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"guid" : "49C65CB6-F9FA-4E3C-B8BE-4A141E4E0F07",
"name": "Simple Add",
"categories": ["Toolkit/Get Started", "Toolkit/Intel® oneAPI Base Toolkit/oneAPI DPC++ Compiler/CPU, GPU and FPGA"],
"description": "Simple program that adds two large vectors in parallel. Provides a ‘Hello World!’ like sample to ensure your environment is setup correctly using Data Parallel C++.",
Expand All @@ -12,30 +13,31 @@
{
"id": "cpu_usm",
"steps": [
"make clean",
"make all",
"make run",
"make clean"
"make run"
]
},
{
"id": "cpu_buffers",
"steps": [
"make clean",
"make build_buffers",
"make run_buffers",
"make clean"
"make run_buffers"
]
},
{
"id": "fpga_emu_buffers",
"steps": [
"make clean -f Makefile.fpga",
"make fpga_emu -f Makefile.fpga",
"make run_emu -f Makefile.fpga",
"make clean -f Makefile.fpga"
"make run_emu -f Makefile.fpga"
]
},
{
"id": "fpga_report_buffers",
"steps": [
"make clean -f Makefile.fpga",
"make report -f Makefile.fpga"
]
}
Expand All @@ -62,7 +64,7 @@
"steps": [
"nmake -f Makefile.win.fpga",
"nmake -f Makefile.win.fpga run",
"nmake -f Makefile.win.fpga clean"
"nmake -f Makefile.win.fpga clean",
]
}
]
Expand Down
Loading