diff --git a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/Makefile.fpga b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/Makefile.fpga index 782847e2e5..7cefb18f10 100644 --- a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/Makefile.fpga +++ b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/Makefile.fpga @@ -4,7 +4,7 @@ CXXFLAGS = -O2 -g -std=c++17 SRC := src/vector-add-buffers.cpp USM_SRC := src/vector-add-usm.cpp -.PHONY: fpga_emu run_emu clean +.PHONY: fpga_emu run_emu fpga_emu_usm run_emu_usm clean fpga_emu: vector-add-buffers.fpga_emu fpga_emu_usm: vector-add-usm.fpga_emu_usm @@ -18,43 +18,49 @@ report_usm: vector-add-usm_report.a_usm vector-add-buffers.fpga_emu: $(SRC) $(CXX) $(CXXFLAGS) -fintelfpga $^ -o $@ -DFPGA_EMULATOR=1 vector-add-usm.fpga_emu_usm: $(USM_SRC) - $(CXX) $(CXXFLAGS) -fintelfpga $^ -o $@ -DFPGA_EMULATOR=1 + @#$(CXX) $(CXXFLAGS) -fintelfpga $^ -o $@ -DFPGA_EMULATOR=1 + @echo USM is not supported for FPGAs, yet a.o: $(SRC) $(CXX) $(CXXFLAGS) -fintelfpga -c $^ -o $@ -DFPGA=1 a_usm.o: $(USM_SRC) - $(CXX) $(CXXFLAGS) -fintelfpga -c $^ -o $@ -DFPGA=1 - + @#$(CXX) $(CXXFLAGS) -fintelfpga -c $^ -o $@ -DFPGA=1 + @echo USM is not supported for FPGAs, yet vector-add-buffers.fpga: a.o $(CXX) $(CXXFLAGS) -fintelfpga $^ -o $@ -Xshardware vector-add-usm.fpga: a_usm.o - $(CXX) $(CXXFLAGS) -fintelfpga $^ -o $@ -Xshardware + @#$(CXX) $(CXXFLAGS) -fintelfpga $^ -o $@ -Xshardware + @echo USM is not supported for FPGAs, yet run_emu: vector-add-buffers.fpga_emu ./vector-add-buffers.fpga_emu run_emu_usm: vector-add-usm.fpga_emu_usm - ./vector-add-usm.fpga_emu_usm + @#./vector-add-usm.fpga_emu_usm + @echo USM is not supported for FPGAs, yet run_hw: vector-add-buffers.fpga ./vector-add-buffers.fpga run_hw_usm: vector-add-usm.fpga - ./vector-add-usm.fpga - + @#./vector-add-usm.fpga + @echo USM is not supported for FPGAs, yet dev.o: $(SRC) $(CXX) $(CXXFLAGS) -fintelfpga -c $^ -o $@ -DFPGA=1 dev_usm.o: $(USM_SRC) - $(CXX) $(CXXFLAGS) -fintelfpga -c $^ -o $@ -DFPGA=1 + @#$(CXX) $(CXXFLAGS) -fintelfpga -c $^ -o $@ -DFPGA=1 + @echo USM is not supported for FPGAs, yet + vector-add-buffers_report.a: dev.o $(CXX) $(CXXFLAGS) -fintelfpga -fsycl-link $^ -o $@ -Xshardware vector-add-usm_report.a_usm: dev_usm.o - $(CXX) $(CXXFLAGS) -fintelfpga -fsycl-link $^ -o $@ -Xshardware + @#$(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 vector-add-buffers.fpga vector-add-usm.fpga *.a \ No newline at end of file + rm -rf *.o *.d *.out *.mon *.emu *.aocr *.aoco *.prj *.fpga_emu *.fpga_emu_buffers vector-add-buffers.fpga vector-add-usm.fpga *.a diff --git a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/Makefile.win b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/Makefile.win index c8dc395fb3..b9e1c2fb4e 100644 --- a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/Makefile.win +++ b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/Makefile.win @@ -1,16 +1,25 @@ CXX = dpcpp-cl CXXFLAGS = -O2 -EHsc -Zi LDFLAGS = -EXE_NAME = vector-add-usm.exe -SOURCES = src/vector-add-usm.cpp +EXE_NAME = vector-add-buffers.exe +SOURCES = src/vector-add-buffers.cpp + +USM_EXE_NAME = vector-add-usm.exe +USM_SOURCES = src/vector-add-usm.cpp all: main main: $(CXX) $(CXXFLAGS) -o $(EXE_NAME) $(SOURCES) $(LDFLAGS) +build_usm: + $(CXX) $(CXXFLAGS) -o $(USM_EXE_NAME) $(USM_SOURCES) $(LDFLAGS) + run: $(EXE_NAME) +run_usm: + $(USM_EXE_NAME) + clean: - del -rf $(EXE_NAME) + del /f $(EXE_NAME) $(USM_EXE_NAME) diff --git a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/Makefile.win.fpga b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/Makefile.win.fpga index aae08de163..35d41eb9b4 100644 --- a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/Makefile.win.fpga +++ b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/Makefile.win.fpga @@ -1,16 +1,26 @@ CXX = dpcpp-cl CXXFLAGS = -O2 -EHsc -Zi LDFLAGS = -SOURCES = src/vector-add-usm.cpp -EXE_NAME_FPGA_EMU = vector-add-usm.fpga_emu.exe + +SRC = src/vector-add-buffers.cpp +USM_SRC = src/vector-add-usm.cpp + +EXE = vector-add-buffers.fpga_emu.exe +USM_EXE = vector-add-usm.fpga_emu.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_buffers *.a $(EXE) $(USM_EXE) diff --git a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/README.md b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/README.md index 37d11d855c..9f32169505 100644 --- a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/README.md +++ b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/README.md @@ -48,15 +48,17 @@ Perform the following steps: ### On a Windows* System Using a Command Line Interface 1. Select **Programs** > **Intel oneAPI 2021** > **Intel oneAPI Command Prompt** to launch a command window. -2. Build the program using the following `nmake` commands (Windows supports USM only): +2. Build the program using the following `nmake` commands: ``` nmake -f Makefile.win ``` +> Note: for USM use `nmake -f Makefile.win build_usm` 3. Run the program using: ``` nmake -f Makefile.win run ``` +> Note: for USM use `nmake -f Makefile.win run_usm` 4. Clean the program using: ``` @@ -127,7 +129,7 @@ Perform the following steps: 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. + c. In the **Preprocessor** subtab, the **Preprocessor Definitions" setting has **FPGA_EMULATOR=1** added. d. Close the dialog. 6. Select **Project** > **Build** menu option to build the selected configuration. diff --git a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/sample.json b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/sample.json index ff974f445e..9737eea2fb 100644 --- a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/sample.json +++ b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/sample.json @@ -1,4 +1,5 @@ { + "guid":"b1b58be7-e22e-4ca2-ba59-6887b2f1be6c", "name": "Vector 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 simple Data Parallel C++.", diff --git a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/src/vector-add-usm.cpp b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/src/vector-add-usm.cpp index f9893f03f2..017fac296b 100644 --- a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/src/vector-add-usm.cpp +++ b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/src/vector-add-usm.cpp @@ -76,7 +76,7 @@ int main() { #endif try { - queue q(default_selector{}, dpc::exception_handler); + queue q(d_selector, dpc::exception_handler); // Print out the device information used for the kernel code. std::cout << "Running on device: " diff --git a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/vector-add-buffers.vcxproj b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/vector-add-buffers.vcxproj new file mode 100644 index 0000000000..dc8e3c2ab9 --- /dev/null +++ b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/vector-add-buffers.vcxproj @@ -0,0 +1,143 @@ + + + + + Debug-fpga + x64 + + + Debug + x64 + + + Release-fpga + x64 + + + Release + x64 + + + + 15.0 + {f11989d7-dcfe-404a-a893-e89084841327} + Win32Proj + vector_add_buffers + $(WindowsSDKVersion) + + + + Application + true + Intel(R) oneAPI DPC++ Compiler + Unicode + + + Application + true + Intel(R) oneAPI DPC++ Compiler + Unicode + + + Application + false + Intel(R) oneAPI DPC++ Compiler + true + Unicode + + + Application + false + Intel(R) oneAPI DPC++ Compiler + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + + + + + + + Console + true + + + + + + + + + + + Console + true + + + + + + + + + + + Console + true + true + true + + + + + + + + + + + Console + true + true + true + + + + + + + + + diff --git a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/vector-add-usm.vcxproj b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/vector-add-usm.vcxproj index c68c96b35e..1d3548180c 100644 --- a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/vector-add-usm.vcxproj +++ b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/vector-add-usm.vcxproj @@ -1,10 +1,18 @@ + + Debug-fpga + x64 + Debug x64 + + Release-fpga + x64 + Release x64 @@ -24,6 +32,18 @@ Intel(R) oneAPI DPC++ Compiler Unicode + + Application + true + Intel(R) oneAPI DPC++ Compiler + Unicode + + + Application + true + Intel(R) oneAPI DPC++ Compiler + Unicode + Application false @@ -31,12 +51,32 @@ true Unicode + + Application + false + Intel(R) oneAPI DPC++ Compiler + true + Unicode + + + Application + false + Intel(R) oneAPI DPC++ Compiler + true + Unicode + Application true Intel(R) oneAPI DPC++ Compiler Unicode + + Application + true + Intel(R) oneAPI DPC++ Compiler + Unicode + Application false @@ -44,6 +84,13 @@ true Unicode + + Application + false + Intel(R) oneAPI DPC++ Compiler + true + Unicode + @@ -52,28 +99,64 @@ + + + + + + + + + + + + + + + + + + true + + true + + + true + true + + true + false + + false + + + false + false + + false + @@ -86,7 +169,45 @@ true + + + + + + + + + Console + true + + + + + + + + + + + Console + true + + + + + + + + + + + + Console + true + + + @@ -113,6 +234,34 @@ true + + + + + + + + + Console + true + true + true + + + + + + + + + + + Console + true + true + true + + @@ -128,12 +277,24 @@ true + + + + + + + /std:c++17 + + + Console + true + true + true + + - - - diff --git a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/vector-add.sln b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/vector-add.sln index bb3221b714..d8a6dba102 100644 --- a/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/vector-add.sln +++ b/DirectProgramming/DPC++/DenseLinearAlgebra/vector-add/vector-add.sln @@ -5,28 +5,30 @@ VisualStudioVersion = 15.0.28307.1145 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vector-add-usm", "vector-add-usm.vcxproj", "{58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vector-add-buffers", "vector-add-buffers.vcxproj", "{F11989D7-DCFE-404A-A893-E89084841327}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 Debug-fpga|x64 = Debug-fpga|x64 - Debug-fpga|x86 = Debug-fpga|x86 Release|x64 = Release|x64 - Release|x86 = Release|x86 + Release-fpga|x64 = Release-fpga|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Debug|x64.ActiveCfg = Debug|x64 {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Debug|x64.Build.0 = Debug|x64 - {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Debug|x86.ActiveCfg = Debug|x64 - {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Debug|x86.Build.0 = Debug|x64 - {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Debug-fpga|x64.ActiveCfg = Debug|x64 - {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Debug-fpga|x64.Build.0 = Debug|x64 - {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Debug-fpga|x86.ActiveCfg = Debug|x64 - {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Debug-fpga|x86.Build.0 = Debug|x64 - {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Release|x64.ActiveCfg = Debug|x64 - {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Release|x64.Build.0 = Debug|x64 - {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Release|x86.ActiveCfg = Debug|x64 - {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Release|x86.Build.0 = Debug|x64 + {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Debug-fpga|x64.ActiveCfg = Debug-fpga|x64 + {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Release|x64.ActiveCfg = Release|x64 + {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Release|x64.Build.0 = Release|x64 + {58CE1265-5B1D-4CBA-9C84-C9E1F8FDFB54}.Release-fpga|x64.ActiveCfg = Release-fpga|x64 + {F11989D7-DCFE-404A-A893-E89084841327}.Debug|x64.ActiveCfg = Debug|x64 + {F11989D7-DCFE-404A-A893-E89084841327}.Debug|x64.Build.0 = Debug|x64 + {F11989D7-DCFE-404A-A893-E89084841327}.Debug-fpga|x64.ActiveCfg = Debug-fpga|x64 + {F11989D7-DCFE-404A-A893-E89084841327}.Debug-fpga|x64.Build.0 = Debug-fpga|x64 + {F11989D7-DCFE-404A-A893-E89084841327}.Release|x64.ActiveCfg = Release|x64 + {F11989D7-DCFE-404A-A893-E89084841327}.Release|x64.Build.0 = Release|x64 + {F11989D7-DCFE-404A-A893-E89084841327}.Release-fpga|x64.ActiveCfg = Release-fpga|x64 + {F11989D7-DCFE-404A-A893-E89084841327}.Release-fpga|x64.Build.0 = Release-fpga|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE