mirror of
https://github.com/andreinechaev/nvcc4jupyter.git
synced 2026-06-13 18:50: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
Vendored
+47
@@ -0,0 +1,47 @@
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <iterator>
|
||||
|
||||
#include <tuple>
|
||||
|
||||
struct S {
|
||||
int n;
|
||||
std::string s;
|
||||
float d;
|
||||
bool operator<(const S& rhs) const
|
||||
{
|
||||
// compares n to rhs.n,
|
||||
// then s to rhs.s,
|
||||
// then d to rhs.d
|
||||
return std::tie(n, s, d) < std::tie(rhs.n, rhs.s, rhs.d);
|
||||
}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
std::set<S> mySet;
|
||||
|
||||
// pre C++17:
|
||||
{
|
||||
S value{42, "Test", 3.14};
|
||||
std::set<S>::iterator iter;
|
||||
bool inserted;
|
||||
|
||||
// unpacks the return val of insert into iter and inserted
|
||||
std::tie(iter, inserted) = mySet.insert(value);
|
||||
|
||||
if (inserted)
|
||||
std::cout << "Value was inserted\n";
|
||||
}
|
||||
|
||||
// with C++17:
|
||||
{
|
||||
S value{100, "abc", 100.0};
|
||||
const auto [iter, inserted] = mySet.insert(value);
|
||||
|
||||
if (inserted)
|
||||
std::cout << "Value(" << iter->n << ", " << iter->s << ", ...) was inserted" << "\n";
|
||||
}
|
||||
}
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
#include <opencv2/core.hpp>
|
||||
#include <iostream>
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
std::cout << cv::getBuildInformation() << std::endl;
|
||||
return 0;
|
||||
}
|
||||
Vendored
+16
-1
@@ -27,10 +27,25 @@ def fixtures_path(tests_path):
|
||||
return os.path.join(tests_path, "fixtures")
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def scripts_path(fixtures_path: str):
|
||||
return os.path.join(fixtures_path, "scripts")
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def compiler_cpp_17_fpath(fixtures_path: str):
|
||||
return os.path.join(fixtures_path, "compiler", "cpp_17.cu")
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def compiler_opencv_fpath(fixtures_path: str):
|
||||
return os.path.join(fixtures_path, "compiler", "opencv.cu")
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def sample_magic_cu_line():
|
||||
# fmt: off
|
||||
return '--profile --profiler-args "--metrics l1tex__t_sectors_pipe_lsu_mem_global_op_ld.sum"' # noqa: E501
|
||||
return '--profile --profiler-args "--metrics l1tex__t_sectors_pipe_lsu_mem_global_op_ld.sum" --compiler-args "--optimize 3"' # noqa: E501
|
||||
# fmt: on
|
||||
|
||||
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# this is a mock of nsight compute cli tool that just executes the program
|
||||
# given as the last argument
|
||||
"${@: -1}"
|
||||
|
||||
echo "==WARNING== No kernels were profiled"
|
||||
Reference in New Issue
Block a user