标签: nvidia

GPL代码与专有库的链接是否取决于首先创建的?

Microsoft创建了他们的Windows和MFC DLL库等.开源开发编写新的MFC应用程序并将源代码作为GPL发布.该应用程序必须链接MS DLL /库才能在Windows中运行,但我认为没有人可以争辩说我们现在有权强迫微软的GPL使用他们的DLL.

这是否意味着GPL许可证实际上取决于首先"创建"哪一个? 如果首先创建专有库(例如Windows DLL),这是在没有链接和任何GPL代码的情况下发布的,后来GPL程序与之链接,那么GPL程序无法将专有库转换为GPL,尽管专有代码是" "与GPL代码相关联.

如果是这种情况,公司如此NVidia或RealNetworks可以做以下事情吗?让我们假设他们喜欢将专有的HDDecoding媒体解码引擎库保密,但他们也希望"利用"开源GPL代码来展示他们的硬件.

  1. 他们创建了一个专有的库来进行媒体解码并发布一些示例代码.
  2. 有人(开源开发)创建"插件",链接到这个专有库,用于GPL代码,如XBMC,Mplayer或VLC.
  3. 他们可以争辩说,因为他们首先创建了专有库(就像MS首先创建所有DLL),与其专有代码链接的GPL程序不会将它们转换为GPL代码.

理论上可以说,创建与NVidia专有媒体解码器库链接的GPL vlc.exe文件的开源开发人员违反了GPL许可证.

这是否意味着在Windows中运行的所有GPL程序(如VLC,git,cygwin等)都违反了GPL许可证,因为它们肯定需要与专有的Microsoft Windows库链接才能运行.

案例2:这有什么问题:

NVidia可以创建一个新的硬件抽象库,隐藏最新的图形功能.他们还使用此库创建一个FreeBSD驱动程序,并发布BSD驱动程序的源代码,但不发布库源代码.

有人(Linux开发人员)可以实现与该库链接的linux驱动程序,以便为Linux创建NVidia图形驱动程序.但是由于NVidia没有这样做,他们可以保持库源"隐藏",同时启用"Linux支持".

这当然违反了GPL的精神.

这是否意味着在Windows/Mac/Iphone/PSP3中运行使用GPLed源创建的任何exe也违反了GPL的精神?

linux windows freebsd gpl nvidia

17
推荐指数
2
解决办法
4718
查看次数

为什么Cuda/OpenCL的全球内存中没有银行冲突?

有一点我没想到并且谷歌没有帮助我,为什么可能与共享内存存在冲突,而不是全局内存?与寄存器存在银行冲突吗?

更新 哇我非常感谢Tibbit和Grizzly的两个答案.看来我只能在一个答案上给出绿色复选标记.堆栈溢出我是新手.我想我必须选择一个最好的答案.我可以做点什么来说谢谢答案我不给绿色支票吗?

cuda nvidia opencl bank-conflict

17
推荐指数
2
解决办法
6191
查看次数

Qt 5.12:无法在“/usr/include/libdrm”中找到“GL/gl.h”

我有一个新安装的Ubuntu 18.04.3系统(NVIDIA)只Qt SDK 5.12.5build-essentialgit,和CMake安装。我正在尝试通过在 Qt Creator 中打开主 CMakeLists.txt 来构建 Qt 项目:

Check for working CXX compiler: /usr/bin/g++
Check for working CXX compiler: /usr/bin/g++ -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
CMake Error at /home/juzzlin/Qt/5.12.5/gcc_64/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:9 (message):
  Failed to find "GL/gl.h" in "/usr/include/libdrm".
Call Stack (most recent call first):
  /home/juzzlin/Qt/5.12.5/gcc_64/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake:174 (include)
  /home/juzzlin/Qt/5.12.5/gcc_64/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:89 (find_package)
  CMakeLists.txt:89 (find_package) …
Run Code Online (Sandbox Code Playgroud)

opengl qt nvidia cmake ubuntu-18.04

17
推荐指数
3
解决办法
7531
查看次数

我可以在Windows7x64(MSVC)和Linux64(GCC4.8.2)的.cu文件(CUDA5.5)中使用C++ 11吗?

当我在Windows7x64(MSVS2012 + Nsight 2.0 + CUDA5.5)中编译包含设计C++ 11的以下代码时,我没有得到错误,并且所有内容都编译并运行良好:

#include <thrust/device_vector.h>

int main() {
    thrust::device_vector<int> dv(10);
    auto iter = dv.begin();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在Linux64(Debian 7 Wheezey + Nsight Eclipse,来自CUDA5.5)下编译它时,我得到错误:

../src/CudaCpp11.cu(5):错误:缺少显式类型(假设为"int")

../src/CudaCpp11.cu(5):错误:没有合适的转换函数

"thrust :: detail :: normal_iterator>"到"int"存在

在编译"/tmp/tmpxft_00001520_00000000-6_CudaCpp11.cpp1.ii"中检测到2个错误.make:* [src/CudaCpp11.o]错误2

当我添加行:-stdc ++ 11

在Properties-> Build-> Settings-> Tool Settings-> Build Stages-> Preprocessor options(-Xcompiler)中

我收到更多错误:

/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h(432):错误:标识符"nullptr"未定义

/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h(432):错误:预期";"

...

/usr/include/c++/4.8/bits/cpp_type_traits.h(314):错误:命名空间"std :: __ gnu_cxx"没有成员

"__normal_iterator"

/usr/include/c++/4.8/bits/cpp_type_traits.h(314):错误:预期">"

nvcc错误:'cudafe'因信号11(无效内存引用)而死亡:* [src/CudaCpp11.o]错误11

只有当我thrust::device_vector<int>::iterator iter = dv.begin();在Linux-GCC中使用时,我才会收到错误.但在Windows MSVS2012中,所有c ++ 11功能都可以正常工作!

我可以在Windows7x64(MSVC)和Linux64(GCC4.8.2)的.cu文件(CUDA5.5)中使用C++ 11吗?

gcc cuda nvidia nvcc c++11

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

以编程方式在nVidia Optimus中选择集成图形

关于如何在Windows平台上的运行时选择nVidia离散适配器有很多问题和答案.最简单的方法是导出一个NvOptimusEnablement变量,如下所示:

extern "C" _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
Run Code Online (Sandbox Code Playgroud)

我有相反的要求.我需要在运行时为我的应用程序设置集成显卡,无论NVIDIA控制面板中的首选图形处理器是什么.这个变量不适合这个.我该怎么做?

c++ windows nvidia

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

无法插入'nvidia_352':没有这样的设备

我试图运行朱古力Linux Ubuntu.安装后,我在gpu中运行caffe,错误是

I0910 13:28:13.606891 10629 caffe.cpp:296] Use GPU with device ID 0
modprobe: ERROR: could not insert 'nvidia_352': No such device
F0910 13:28:13.728612 10629 common.cpp:142] Check failed: error == cudaSuccess (38 vs. 0)  no CUDA-capable device is detected
*** Check failure stack trace: ***
    @     0x7ffd3b9a7daa  (unknown)
    @     0x7ffd3b9a7ce4  (unknown)
    @     0x7ffd3b9a76e6  (unknown)
    @     0x7ffd3b9aa687  (unknown)
    @     0x7ffd3bf91cb5  caffe::Caffe::SetDevice()
    @           0x40a5a7  time()
    @           0x4080f8  main
    @     0x7ffd3aeb9ec5  (unknown)
    @           0x408618  (unknown)
    @              (nil)  (unknown)
Aborted (core …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu cuda nvidia caffe

16
推荐指数
2
解决办法
2万
查看次数

如何获得cuda设备中的核心数量?

我正在寻找一个计算我的cuda设备核心数的功能.我知道每个微处理器都有特定的内核,而我的cuda设备有2个微处理器.

我经常搜索一个属性函数来计算每个微处理器的核心数,但我不能.我使用下面的代码,但我还需要核心数量?

  • cuda 7.0
  • 程序语言C.
  • 视觉工作室2013

码:

void printDevProp(cudaDeviceProp devProp)
{   printf("%s\n", devProp.name);
printf("Major revision number:         %d\n", devProp.major);
printf("Minor revision number:         %d\n", devProp.minor);
printf("Total global memory:           %u", devProp.totalGlobalMem);
printf(" bytes\n");
printf("Number of multiprocessors:     %d\n", devProp.multiProcessorCount);
printf("Total amount of shared memory per block: %u\n",devProp.sharedMemPerBlock);
printf("Total registers per block:     %d\n", devProp.regsPerBlock);
printf("Warp size:                     %d\n", devProp.warpSize);
printf("Maximum memory pitch:          %u\n", devProp.memPitch);
printf("Total amount of constant memory:         %u\n",   devProp.totalConstMem);
return;
}
Run Code Online (Sandbox Code Playgroud)

c cuda nvidia

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

重启AMI后,NVidia驱动程序未在AWS上运行

大家好,我有以下问题:

我用这个AMI启动了一个P2实例.我安装了一些工具,如屏幕,火炬等.然后我使用GPU成功运行了一些实验,我创建了一个实例的图像,以便我可以终止它并在以后再次运行它.

后来我从之前创建的AMI开始了一个新实例.一切看起来很好 - 屏幕,火炬,我的实验都出现在系统上,但我无法像以前那样进行相同的实验:

NVIDIA-SMI因为无法与NVIDIA驱动程序通信而失败.确保已安装并运行最新的NVIDIA驱动程序.

对我来说,看起来可能安装了驱动程序(因为之前安装了所有其他工具),但它们没有运行.这是正确的假设吗?我怎么开始呢?

drivers nvidia amazon-ec2 amazon-web-services

16
推荐指数
2
解决办法
1634
查看次数

为什么我的OpenCL内核在nVidia驱动程序上失败,而不是英特尔(可能的驱动程序错误)?

我最初写了一个OpenCL程序来计算非常大的厄米特矩阵,其中内核计算矩阵中的一对条目(上三角形部分及其下三角形补码).

很早以前,我发现了一个非常奇怪的问题,如果我的内核大小正好是55,那么第27个内核线程将无法执行.在使用nVidia驱动程序和GPU加速时才会出现此问题.当我在CPU上使用Intel驱动程序运行它时,我发现第27个内核线程执行得很好.较大和较小的内核大小似乎没有出现问题.

认为它可能是我的代码中的东西,我将我的问题提炼到以下非常简单的内核:

__kernel void testIndex(__global float* outMatrix, unsigned int sizeN)
{
    //k is the linear kernel ID (related to but not exactly the linear index into the outMatrix)
    int k = get_global_id(0);
    //i'th index (Row or Y)
    int i = floor((2 * sizeN+1 - sqrt((float)((2 * sizeN + 1) * (2 * sizeN + 1) -8 * k) )) /2);

    //j'th index (Column or X)
    int j = k - sizeN * i + i …
Run Code Online (Sandbox Code Playgroud)

gpgpu nvidia opencl

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

CUDA运行时API错误38:未检测到支持CUDA的设备

情况

我有一个2 gpu服务器(Ubuntu 12.04),我用一台GTX 670切换了特斯拉C1060.比我在4.2上安装了CUDA 5.0.然后我编译了所有execpt for simpleMPI的例子而没有错误.但是当我运行时,./devicequery我收到以下错误消息:

foo@bar-serv2:~/NVIDIA_CUDA-5.0_Samples/bin/linux/release$ ./deviceQuery
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

cudaGetDeviceCount returned 38
-> no CUDA-capable device is detected
Run Code Online (Sandbox Code Playgroud)

我试过了什么

为了解决这个问题,我尝试了所有CUDA功能设备推荐的思路,但无济于事:

  • /dev/nvidia* 是,并且权限是666(crw-rw-rw-)和所有者root:root

     foo@bar-serv2:/dev$ ls -l nvidia*
     crw-rw-rw- 1 root root 195,   0 Oct 24 18:51 nvidia0
     crw-rw-rw- 1 root root 195,   1 Oct 24 18:51 nvidia1
     crw-rw-rw- 1 root root 195, 255 Oct 24 18:50 nvidiactl
    
    Run Code Online (Sandbox Code Playgroud)
  • 我尝试用sudo执行代码

  • CUDA 5.0同时安装驱动程序和库

PS这里是lspci | grep -i …

cuda nvidia

15
推荐指数
2
解决办法
3万
查看次数