小编Sha*_*mar的帖子

配置CMake以在Windows上设置CUDA

我正在尝试使用CMake在Windows上编译基于CUDA的应用程序(Visual Studio 2005).这是一个剥离CMake文件的示例:

cmake_minimum_required (VERSION 2.6)
project (HELLO)

#Support for CUDA Integration
FIND_PACKAGE(CUDA)
if(CUDA_FOUND)
    SET(CUDA_NVCC_FLAGS "-arch;sm_13")
CUDA_ADD_EXECUTABLE(Hello hello.cu)
else(CUDA_FOUND)
    message("CUDA is not installed on this system.")
endif()
Run Code Online (Sandbox Code Playgroud)

我希望通过这个问题了解一些问题.

当我打开解决方案文件(Hello.sln)时,我没有看到任何项目的自定义构建规则设置(右键单击项目 - >自定义构建规则)

我确实在Visual Studio中看到了一个"Hello_generated_hello.cu.obj"添加到我的项目中.这个文件是什么?为什么它被添加到项目中?

默认情况下,CUDA Runtime API部分不在Project属性中.

如果我启用了适当的自定义构建规则(NvCudaRuntimeApi.rules),我现在可以看到CUDA运行时API部分.如果我现在转到GPU子部分,我看到GPU架构仍然设置为sm_10.

即使我使用CUDA_INCLUDE_DIRECTORIES()宏为CUDA编译添加一些目录,我也不会在Project Properties - > CUDA Runtime API - > General - > Additional Include Directories中看到这些设置.

我想知道FindCUDA()包是否能够正确配置VS 2005项目以进行基于CUDA的编译.可能我需要指定其他选项来正确配置项目.我当然希望知道这一点.我希望确保通过CMakeLists文件指定的任何选项,我应该能够在我生成的VS 2005项目中轻松查看它们.

什么是适当的配置方式?

cuda cmake visual-studio

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

在特定情况下,使用C++模板将整数映射到类型失败

我试图在VC++ 2005中编译以下基于模板的代码.

    #include <iostream>
using namespace std;


/*
 * T is a template which maps an integer to a specific type.
 * The mapping happens through partial template specialization.
 * In the following T<1> is mapped to char, T<2> is mapped to long
 * and T<3> is mapped to float using partial template specializations
 */
template <int x>
struct T
{
public:
};

template<>
struct T<1>
{
public:
    typedef char xType;
};


template<>
struct T<2>
{
public:
    typedef long xType; …
Run Code Online (Sandbox Code Playgroud)

c++ templates

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

在 Go 中迭代多维数组

在下面的代码示例中

var a [3][5]int8
for _, h := range a {
    for _, cell := range h {
        fmt.Print(cell, " ")
    }
    fmt.Println()
}
Run Code Online (Sandbox Code Playgroud)

a在每次迭代中制作的一行的副本吗?即,是否h包含一行的副本a或是否h获得对它的引用?

go

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

Rust如何从数组转换为std :: raw ::: Slice

std::raw::Slice 定义为:

pub struct Slice<T> {
    pub data: *const T,
    pub len: uint,
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试这样的事情:

use std::raw::Slice as RawSlice;
let a = [1i,2,3,4];
let s : RawSlice<int>= RawSlice{data: a as *const int, 
        len : a.len()};
Run Code Online (Sandbox Code Playgroud)

这不编译.error: non-scalar cast: [int, ..4] as *const int.我基本上无法弄清楚如何获得指向数组开头的指针.

类似的问题是:如何从[int]转换为*const int?

unsafe rust

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

生锈报告在模板化代码时不能脱离取消引用

Rust中的以下代码编译正常:

pub fn insertion_sort(data : &mut [int]){
  let n  = data.len();
  for j in range(1, n){
    let key = data[j];
    // we insert data[j] into the sorted sequence 
    //data[0...j-1]
    let mut i = j -1;
    while data[i] > key{
        data[i + 1]  = data[i];
        if i == 0{
            break;
        }
        i -= 1;
    }
    data[i] = key;
  }
}
Run Code Online (Sandbox Code Playgroud)

但是那一刻,我介绍了泛型如下:

pub fn insertion_sort<T : Ord>(data : &mut [T]){
  let n  = data.len();
  for j in range(1, n){
    let key = …
Run Code Online (Sandbox Code Playgroud)

generics rust

2
推荐指数
1
解决办法
318
查看次数

eclipse在端口8000上侦听

我的日食不知何故开始在端口8000上听.我不知道为什么会这样做.我正在使用Eclipse进行Python开发(使用PyDev工具).

此默认端口与默认的Django开发服务器端口viz 8000冲突.我无法启动Django开发版本.当然我可以关闭eclipse,启动Django然后重启eclipse,但我宁愿禁用Eclipse使用端口8000.

在Internet上,我看到了一些Eclipse的远程调试功能,但无法弄清楚如何更改此默认端口号.

eclipse django

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

:hover pseudoclass不适用于通用选择器*

如果我写

h1:hover, li:hover {color:green;}
Run Code Online (Sandbox Code Playgroud)

h1和li元素都可以获得悬停效果.

如果我写的话:

*:hover {color: green;} 
Run Code Online (Sandbox Code Playgroud)

这仅对锚元素有效.

是:hover pseudoclass不适用于通用选择器吗?

css css-selectors pseudo-class

0
推荐指数
1
解决办法
1081
查看次数