A newer version of this document is available. Customers should click here to go to the newest version.
Build and Run a Sample Project Using the Command Line
Intel® oneAPI HPC Toolkit
Command line development can be done with a terminal window or done through Visual Studio Code*. Some tasks can be automated using extensions. To learn more, see Using Visual Studio Code with Intel® oneAPI Toolkits.
To compile and run a sample:
- Download the sample using the oneAPI CLI Samples Browser.
- Compile and run the sample with Make*
Download Samples using the oneAPI CLI Samples Browser
Use the oneAPI CLI Samples Browser to browse the collection of online oneAPI samples. As you browse the oneAPI samples, you can copy them to your local disk as buildable sample projects. Most oneAPI sample projects are built using Make or CMake, so the build instructions are included as part of the sample in a README file. The oneAPI CLI utility is a single-file, stand-alone executable that has no dependencies on dynamic runtime libraries.
An internet connection is required to download the samples for oneAPI toolkits. For information on how to use this toolkit offline, see Developing with Offline Systems in the Troubleshooting section.
If you develop using Visual Studio Code*, some tasks can be automated with extensions. To learn more, see Using Visual Studio Code with Intel® oneAPI Toolkits.
To watch a video presentation of how to create a project with the command line, see Exploring Intel® oneAPI Samples from the Command Line.
- Open a terminal window.
- If you did not complete the steps in One time set up for setvars.sh in the Configure Your System section, set system variables by sourcing setvars:
For system wide installations (requires root or sudo privileges):
For private installations:
. ~/intel/oneapi/setvars.shThe command above assumes you installed to the default folder. If you customized the installation folder, setvars.sh is in your custom folder.NOTE:
The setvars.sh script can be managed using a configuration file, which is especially helpful if you need to initialize specific versions of libraries or the compiler, rather than defaulting to the "latest" version. For more details, see Using a Configuration File to Manage Setvars.sh. If you need to setup the environment in a non-POSIX shell, seeoneAPI Development Environment Setup for more configuration options.
- In the same terminal window, run the application (it should be in your PATH):
The oneAPI CLI menu appears:
- Move the arrow key down to select Create a project, then press Enter. The language selection will appear. If you installed Intel® oneAPI Base Toolkit, but you want to work with the Intel® oneAPI HPC Toolkit and samples, ensure the HPC toolkit is installed. If it is not installed, install the HPC toolkit, then return to step 1 of this procedure.
- Select the language for your sample. For your first project, select cpp, then press Enter. The toolkit samples list appears.
- Select the Matrix Mul sample which appears at the top of the list:
After you select a sample, press Enter.
- Specify the location for the project. The default location includes the path from where the utility was run and the name of the project.
Press Tab to select Create, then press Enter:
Now that you have the samples downloaded, compile and run the sample with CMake*
Build and Run a Sample Using Make*
Build the matrix_mul Program using Make:
Run the Program
cd matrix_mul && make all
Clean the Program
Build and Run a Project Based on a oneAPI Sample using CMake
To run a different sample using CMake, where <sample_name> is the name of the sample you want to run:
- If necessary, re-run the command-line utility and select a CMake project that contains a CMakeLists.txt file.
cd <sample_name> &&
- Navigate to the build directory.
mkdir build && cd build &&
- Build the program. Run CMake in the build directory to create the makefile. Use the newly created makefile to build the executable.
cmake ../. && make VERBOSE=1
- Run the program.
- Clean the program.
See Explore SYCL* Through Samples to learn more.
Did you find the information on this page useful?