小编Mik*_*kin的帖子

与VS 2017的CUDA 9不支持的错误

我最近更新了我的VS 2017,现在我甚至无法构建默认的CUDA项目(添加了矢量的项目).

我怀疑这是由于以下错误:

Severity    Code    Description Project File    Line    Suppression State
Error   C1189   #error:  -- unsupported Microsoft Visual Studio version! 
 Only the versions 2012, 2013, 2015 and 2017 are supported! ver2    
c:\program files\nvidia gpu computing 
toolkit\cuda\v9.0\include\crt\host_config.h 133 
Run Code Online (Sandbox Code Playgroud)

其他错误是无关紧要的,一旦我解决了这个错误就会消失.请注意,我能够从CUDA示例构建并运行simpleCUFFT.

在更新之前,我能够构建默认的CUDA项目,但是我无法构建CUDA Sample项目.我使用VS安装程序更新了我的VS2017并安装了CUDA SDK 10.0.15063.0.附件是截图截图 安装组件.

如果需要任何其他信息,请与我们联系.我知道以下主题,因为我使用的是最新的CUDA工具包,所以我不需要在host_config.h中进行更改.

谢谢,米哈伊尔

编辑:我的VS版本(在VS安装程序中显示)是15.5.0我的nvcc版本是9.0版,V9.0.176

Edit2:我试图将host_config.h第133行更改为:

  #if _MSC_VER < 1600 || _MSC_VER > 1912
Run Code Online (Sandbox Code Playgroud)

此错误不再显示,但是,文件type_trails中会出现一堆错误"表达式必须具有常量值".我不知道如何解决它.

c++ cuda visual-studio

11
推荐指数
1
解决办法
9081
查看次数

在 Python 中调试期间绘制函数

我曾经在 Matlab 中工作,在使用函数进行调试期间可视化中间结果非常方便(当使用大数组/矩阵和嵌套函数时)plot

在Python中,我无法在调试模式下绘制任何内容:带有图形图的窗口永远不会加载(我使用Spyder IDE进行编码和matplotlib.pyplot绘图)。

在调试嵌套函数和类时,这确实很烦人。有谁知道一个好的解决方案吗?当然,我总是可以输出中间结果,但这并不方便。

谢谢,米哈伊尔

python debugging matplotlib

9
推荐指数
1
解决办法
5267
查看次数

使用动态并行 (CUDA) 编译 .cu 文件

我换了一个新的 GPU GeForce GTX 980 cc 5.2,所以它必须支持动态并行。但是,我什至无法编译一个简单的代码(来自编程指南)。我不会在这里提供它(没有必要,只是有一个全局内核调用另一个全局内核)。

1)我使用VS2013进行编码。在 中property pages -> CUDA C/C++ -> device,我将code generation属性更改为compute_35,sm_35,这是输出:

1>------ Build started: Project: testCublas3, Configuration: Debug Win32 ------
1>  Compiling CUDA source file kernel.cu...
1>  
1>  C:\programs\misha\cuda\Projects\test projects\testCublas3\testCublas3>"C:\Program      Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\bin\nvcc.exe" -gencode=arch=compute_35,code=\"sm_35,compute_35\" --use-local-env --cl-version 2013 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin"  -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include"  -G   --keep-dir Debug -maxrregcount=0  --machine 32 --compile -cudart static  -g   -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS …
Run Code Online (Sandbox Code Playgroud)

cuda dynamic-parallelism

7
推荐指数
1
解决办法
6290
查看次数

Visual Studio 2017不会在运行时重建已更改的代码

我正在使用Visual Studio 2017 ver 15.5.0(最新版)来开发一些CUDA/C++代码.问题是,在代码更改时,我必须手动选择重建解决方案.当我按f5按钮时,它不会构建新版本.当我按下build时,它说该解决方案是最新的(尽管代码已经更改).

我注意到这件事也发生在其他项目中,所以它应该与全局VS设置有关.我熟悉 这个主题,并确保选择"始终构建"选项.

谢谢,米哈伊尔

build visual-studio visual-studio-2017

7
推荐指数
0
解决办法
1185
查看次数

AttributeError: 模块 'numpy' 没有属性 'matlib'

我最近开始用 Python 编码。在我的脚本开始时,我总是有以下导入:import numpy as np.

在我的一个脚本中,我使用了np.matlib.repmat函数。它曾经可以正常工作,但是最近它无法运行并显示以下错误:

 AttributeError: module 'numpy' has no attribute 'matlib'
Run Code Online (Sandbox Code Playgroud)

我搜索了这个问题,如果一个人在他的工作目录中有一个名为 numpy.py 的脚本,或者如果安装的版本不同并且不包含被调用的模块,看起来就会出现这样的错误。

我没有命名任何文件 numpy.py。我还发现,在我打电话之后:

 from numpy import matlib as mb
Run Code Online (Sandbox Code Playgroud)

我可以使用mb.repmat. 因此,我的 numpy 模块确实包含matlib模块。有人可以提示我,为什么我不能打电话np.matlib

python module numpy

6
推荐指数
1
解决办法
1万
查看次数

将指针数组复制到设备内存和后端(CUDA)

我试图在我的玩具示例中使用cublas函数cublasSgemmBatched.在这个例子中,我首先分配2D数组:h_AA, h_BBsize [ 6] [ 5]和h_CCsize [ 6] [ 1].之后,我将其复制到设备,执行cublasSgemmBatched并尝试将阵列复制d_CC回主机阵列h_CC.但是,我收到了一个错误(cudaErrorLaunchFailure)设备主机复制,我不确定我是否正确地将数组复制到设备中:

int main(){
    cublasHandle_t handle;
    cudaError_t cudaerr;
    cudaEvent_t start, stop;
    cublasStatus_t stat;
    const float alpha = 1.0f;
    const float beta = 0.0f;
    float **h_AA, **h_BB, **h_CC;
    h_AA = new float*[6];
    h_BB = new float*[6];
    h_CC = new float*[6];
    for (int i = 0; i < 6; i++){
        h_AA[i] = new float[5]; …
Run Code Online (Sandbox Code Playgroud)

arrays pointers cuda cublas

5
推荐指数
1
解决办法
3555
查看次数

OpenCV不适用于Visual Studio

我刚刚安装了openCV ver.在我的计算机上测试3.00 beta,我正试图用VS2013测试它.我按照快速入门指南:

1)使用预构建库安装Windows.

2)Microsoft VS内部的OpenCV,使用本地方法和x64/vc12目录库.

因此,他们的示例(在链接#2中列出)产生了一个错误:

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
    if (argc != 2)
    {
        cout << " Usage: display_image ImageToLoadAndDisplay" << endl;
        return -1;
    }

    Mat image;
    image = imread(argv[1], IMREAD_COLOR); // Read the file

    if (image.empty()) // Check for invalid input
    {
        cout << "Could not open or find the image" << std::endl;
        return -1; …
Run Code Online (Sandbox Code Playgroud)

c++ opencv visual-studio-2013

5
推荐指数
1
解决办法
9596
查看次数

矩阵乘法性能:C++(特征)比Python慢​​得多

我试图估计Python性能与C++相比有多好.

这是我的Python代码:

a=np.random.rand(1000,1000) #type is automaically float64
b=np.random.rand(1000,1000) 
c=np.empty((1000,1000),dtype='float64')

%timeit a.dot(b,out=c)

#15.5 ms ± 560 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
Run Code Online (Sandbox Code Playgroud)

这是我在发布机制中使用Xcode编译的C++代码:

#include <iostream>
#include <Dense>
#include <time.h>

using namespace Eigen;
using namespace std;

int main(int argc, const char * argv[]) {
    //RNG generator
    unsigned int seed = clock();
    srand(seed);

    int Msize=1000, Nloops=10;

    MatrixXd m1=MatrixXd::Random(Msize,Msize);
    MatrixXd m2=MatrixXd::Random(Msize,Msize);
    MatrixXd m3=MatrixXd::Random(Msize,Msize);

    cout << "Starting matrix multiplication test with " << Msize << 
    "matrices" << endl; …
Run Code Online (Sandbox Code Playgroud)

c++ python benchmarking numpy eigen

5
推荐指数
1
解决办法
2193
查看次数

C++中的模数函数,其行为类似于matlab中的mod

我在周期性域(框)中进行了大量粒子(最多100000)的模拟,并且为了使粒子留在盒子内,我使用浮点数或双数的模数函数.

在功能上,Matlab一切都很棒mod.但是在C++我发现,该函数fmod并不完全等于Matlab的mod函数:

mod(-0.5,10)=9.5 - 我想要这个结果 C++

fmod(-0.5,10)=-0.5 - 我不想要这个.

当然,我可以用if语句解决我的问题.但是,我认为,它会影响效率(如果在关键循环中声明).有没有办法在没有if声明的情况下实现这个功能?可能是其他一些功能?

谢谢.

c++ matlab

3
推荐指数
1
解决办法
2338
查看次数

在matlab中设置稀疏矩阵的最快方法

我正在使用迭代方法,因此使用大型稀疏矩阵.例如,我想设置一个这样的矩阵:

1   1   0   0   1   0   0   0   0   0
1   1   1   0   0   1   0   0   0   0
0   1   1   1   0   0   1   0   0   0
0   0   1   1   1   0   0   1   0   0
1   0   0   1   1   1   0   0   1   0
0   1   0   0   1   1   1   0   0   1
Run Code Online (Sandbox Code Playgroud)

因此,只有某些对角线不为零.在我的编程中,我将使用更大的矩阵大小,但是Idea是相同的:只有少数对角线非零,所有其他条目都是零.

我知道,如何在for循环中做到这一点,但如果矩阵大小很大,它似乎没有效果.我也使用对称矩阵.如果您为我的样本矩阵和描述提供代码,我将不胜感激.

arrays matlab matrix sparse-array sparse-matrix

3
推荐指数
1
解决办法
74
查看次数