mirror of
https://github.com/andreinechaev/nvcc4jupyter.git
synced 2026-06-14 03:00:47 +05:30
Feature: Passing arguments to NVCC compiler (#26)
* Add option to give nvcc extra arguments * Add test for nvcc options that changes c++ dialect from c++17 to c++14 * Add make and the english language pack to devcontainer to be able to build the documentation * Update documentation config to automatically import the current version of the package * Document new --compiler-args argument * Improve tests coverage by testing for bad arguments and the error output during a failed compilation * Add IPython to docs requirements to allow the __version__ import for readthedocs env * Change devcontainer base image to have the latest CUDA toolkit * Mock the nsight compute tool with a bash script * Add test to compile with opencv * Add new page to documentation that contains a new notebook that explains compiling with external libraries * Add autodocstring vscode extension to devcontainer * Add function that modifies the default profiler/compiler arguments to allow reusing them in multiple magic command calls * Update pylint exceptions * Update contributing instructions * Change version from 1.0.3 to 1.1.0 due to adding features in a backward-compatible manner * Install latest CUDA toolkit on the test runner to pass the OpenCV compilation test * Install opencv in test runner and update code coverage install * Add CUDA bin to PATH in test and coverage runners * Add cuda bin to path variable in .bashrc * Update way to set environment variable PATH in github action * Change devcontainer base image back to ubuntu:22.04 to match the environment from the test runner
This commit is contained in:
committed by
GitHub
parent
5cd225851b
commit
781ff5b76b
@@ -255,3 +255,47 @@ Running the cell above will compile and execute the vector addition code in the
|
||||
SM Active Cycles cycle 383.65
|
||||
Compute (SM) Throughput % 1.19
|
||||
----------------------- ------------- ------------
|
||||
|
||||
Compiler arguments
|
||||
------------------
|
||||
|
||||
In the same way profiler arguments can be passed to the profiling tool,
|
||||
compiling arguments can be passed to **nvcc**:
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
%cuda_group_run --group "vector_add" --compiler-args "--optimize 3"
|
||||
|
||||
Running the cell above will compile and execute the vector addition code in the
|
||||
"vector_add" group. During compilation, **nvcc** receives the "\-\-optimize"
|
||||
option which specifies the optimization level for host code.
|
||||
|
||||
Set default arguments
|
||||
---------------------
|
||||
|
||||
In the case where you execute multiple magic commands with the same compiler or
|
||||
profiler arguments you can avoid writing them every time by setting the default
|
||||
arguments:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from nvcc4jupyter import set_defaults
|
||||
set_defaults(compiler_args="--optimize 3", profiler_args="--section SpeedOfLight")
|
||||
|
||||
The same effect can be achieved by running "set_defaults" once for each config
|
||||
due to the fact that the default value is not changed if an a value is not
|
||||
given to the "set_defaults" function.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from nvcc4jupyter import set_defaults
|
||||
set_defaults(compiler_args="--optimize 3")
|
||||
set_defaults(profiler_args="--section SpeedOfLight")
|
||||
|
||||
|
||||
Now we can run the following cell without specifying the compiler and profiler
|
||||
arguments once again.
|
||||
|
||||
.. code-block:: c++
|
||||
|
||||
%cuda_group_run --group "vector_add" --profile
|
||||
|
||||
Reference in New Issue
Block a user