Моя рабочая станция имеет два графических процессора (Quadro K5200 и Quadro K2200) с установленным последним драйвером NVIDIA (версия: 352.41). После загрузки файла cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
из CUDA 7.5 Downloads , я пытаюсь установить его, но получается результат, как показано ниже:
root@P700-Bruce:/home/bruce/Downloads# sudo apt-get install cuda
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
cuda : Depends: cuda-7-5 (= 7.5-18) but it is not going to be installed
unity-control-center : Depends: libcheese-gtk23 (>= 3.4.0) but it is not going to be installed
Depends: libcheese7 (>= 3.0.1) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
Я попробовал решение:
sudo apt-get remove nvidia-cuda-*
# удалить старые пакеты nvidia-cuda Установить несобранные зависимости:
root@P700-Bruce:/home/bruce/Downloads# apt-get install cuda-7-5
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
cuda-7-5 : Depends: cuda-toolkit-7-5 (= 7.5-18) but it is not going to be installed
Depends: cuda-runtime-7-5 (= 7.5-18) but it is not going to be installed
unity-control-center : Depends: libcheese-gtk23 (>= 3.4.0) but it is not going to be installed
Depends: libcheese7 (>= 3.0.1) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
root@P700-Bruce:/home/bruce/Downloads# apt-get install cuda-toolkit-7-5
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
cuda-toolkit-7-5 : Depends: cuda-core-7-5 (= 7.5-18) but it is not going to be installed
Depends: cuda-command-line-tools-7-5 (= 7.5-18) but it is not going to be installed
Depends: cuda-samples-7-5 (= 7.5-18) but it is not going to be installed
Depends: cuda-documentation-7-5 (= 7.5-18) but it is not going to be installed
Depends: cuda-visual-tools-7-5 (= 7.5-18) but it is not going to be installed
unity-control-center : Depends: libcheese-gtk23 (>= 3.4.0) but it is not going to be installed
Depends: libcheese7 (>= 3.0.1) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
Установить и использовать aptitude
Моя ОС Ubuntu14.04 только что установлена и произвела обновления программного обеспечения и установила последнюю версию драйвера Nvidia.
Вы можете помочь? Заранее спасибо!
Установка CUDA немного сложнее. Я выполнил следующие шаги, и это работает для меня. Вы также можете обратиться к этой ссылке .
Подтверждение среды:
lspci | grep -i nvidia
(Убедитесь, что отображается информация о плате NVIDIA)
uname -m
( убедитесь, что это x86_64)
gcc --version
(убедитесь, что оно установлено)
Установка CUDA -
[ 1139] Скачать файл cuda_7.5.18_linux.run
с https://developer.nvidia.com/cuda-downloads
Выполнить следующие команды:
sudo apt-get install build-essential
echo blacklist nouveau option nouveau modeset=0 |sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
Перезагрузка компьютера
На экране входа нажмите Ctrl kbd> + Alt kbd > + F1 kbd> и войдите в систему для вашего пользователя.
Перейдите в каталог, где находится драйвер CUDA, и выполните
chmod a+x .
sudo service lightdm stop
sudo bash cuda-7.5.18_linux.run --no-opengl-libs
Во время установки:
Проверьте, существуют ли файлы /dev/nvidia*
. Если это не так, сделайте следующее
sudo modprobe nvidia
Установите переменные пути среды
export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
Проверьте версию драйвера
cat /proc/driver/nvidia/version`
Проверьте версию драйвера CUDA
nvcc –V
Снова включите lightdm
sudo service lightdm start
Создать примеры CUDA , Перейдите в папку NVIDIA_CUDA-7.5_Samples
через терминал, затем выполните следующую команду:
make
cd bin/x86_64/linux/release/
./deviceQuery
./bandwidthTest
Оба теста должны в конечном итоге вывести «PASS» в терминале
Перезагрузить систему
Похоже на LP ошибка 1428972 .
Пользователь fennytansy добавил обходной путь в комментарий № 10 :
sudo apt-get install libglew-dev libcheese7 libcheese-gtk23 libclutter-gst-2.0-0 libcogl15 libclutter-gtk-1.0-0 libclutter-1.0-0
Сегодня я перезагрузил Ubuntu и обнаружил еще одну неудовлетворенную зависимость, например, libcog15 : Depends: mesa-driver...
(я не могу вспомнить полное имя пакета), поэтому я использовал apt-get install
для установки «mesa-драйвера». После этого CUDA 7.5 успешно установлен.
Обратите внимание, что моя версия ядра - 3.19.0-28-generic , а версия gcc - Ubuntu 4.8.4-2ubuntu1 ~ 14.04 , чего нет в Официальные документы CUDA 7.5 . Я проверю, действительно ли это работает.
-проблемы с входом в систему lightdm (цикл входа в систему)
-проблемы с драйвером istall («Ошибка установки драйвера: кажется, что X-сервер работает ...»)
Чтобы успешно установить NVidia CUDA Toolkit на Ubuntu 16.04 64bit, мне просто нужно было сделать:
добавить Пользователь sudo на сеансе в реальном времени:
администратор addoser sudo (#pass: admin1)
пользователь sudo -aG Администратор sudo
выход из сеанса реального времени, войдите в систему как #admin
измените привилегии для загруженного установочного файла (НЕ УСТАНАВЛИВАЙТЕ НА ЭТОМ ШАГЕ!) :
sudo chmod + x cuda_X.X.run
переключиться в вид консоли:
Ctr + Alt + F1 (для включения вида терминала) Ctr + Alt + F7 (для переключения с вида терминала на графический сервер)
в виде консоли (Ctr + Alt + F1) войти в систему:
войти: admin pass: admin1
остановить работу графического сервиса:
sudo service lightdm stop
проверить, не отключен ли графический сервер - после переключения Ctr + Alt + F7 монитор должен быть пустым черным, снова переключиться в режим просмотра консоли Ctr + Alt + F1
установить CUDA Toolkit с такой конфигурацией:
sudo ./cuda_X.X.run (нажмите «q» для пропуска чтения лицензии), не устанавливайте библиотеку OpenGL, не обновляйте конфигурацию системы X, другие параметры дают «да» и пути по умолчанию
включить графический сервер:
sudo service lightdm start
войти в систему как пользователь (если вы автоматически входите как #ubuntu при выходе из сеанса в реальном времени):
login: admin pass: admin1
проверять любой nvcc compi ler работает с предоставленной простой параллельной векторной суммой в блоках GPU:
сохраните vecSum.cu и book.h в новых файлах, скомпилируйте и запустите на терминале: /usr/local/cuda-8.0/bin/nvcc vecSum. у & amp; очистить & amp; & amp; ./a.out
проверить распечатку консоли - она должна быть похожа на: 0,000000 + 0,000000 = 0,000000
-1.100000 + 0.630000 = -0.000000
-2.200000 + 2.520000 = 0.319985
-3.300000 + 5.670000 = 2.119756
-4.400000 + 10.080000 = 5.679756
-5.500000 + 15.750000 = 10.250000
-6.600000 + 22.680000 = 16.017500
-7.700000 + 30.870001 = 23.170002
-8.800000 + 40.320000 = 31.519997
-9.900000 + 51.029999 = 41.129967
если все прошло хорошо на сеансе pendrive live, сделайте то же самое на вашей системе linux
PS Обратите внимание, что это не идеальный учебник, но он отлично работает для меня!
======= vecSum.cu =====
#include "book.h"
#define N 50000
///usr/local/cuda-8.0/bin/nvcc vecSum.cu && clear && ./a.out
//"HOST" = CPU
//"Device" = GPU
__global__ void add( float *a, float *b, float *c )
{
int tid = blockIdx.x;
if ( tid < N )
c[ tid ] = a[ tid ] + b[ tid ];
}
int main ( void )
{
float a[ N ], b[ N ], c[ N ];
float *dev_a, *dev_b, *dev_c;
//GPU memory allocation
HANDLE_ERROR( cudaMalloc( ( void** )&dev_a, N * sizeof( float ) ) );
HANDLE_ERROR( cudaMalloc( ( void** )&dev_b, N * sizeof( float ) ) );
HANDLE_ERROR( cudaMalloc( ( void** )&dev_c, N * sizeof( float ) ) );
//sample input vectors CPU generation
for ( int i = 0; i < N; i++ )
{
a[ i ] = -i * 1.1;
b[ i ] = i * i * 0.63;
}
//copy/load from CPU to GPU data vectors a[], b[] HostToDevice
HANDLE_ERROR( cudaMemcpy( dev_a, a, N * sizeof( float ), cudaMemcpyHostToDevice ) );
HANDLE_ERROR( cudaMemcpy( dev_b, b, N * sizeof( float ), cudaMemcpyHostToDevice ) );
//calculate sum of vectors on GPU
add<<<N,1>>> ( dev_a, dev_b, dev_c );
//copy/load result vector from GPU to CPU c[] DeviceToHost
HANDLE_ERROR( cudaMemcpy( c, dev_c, N * sizeof( float ), cudaMemcpyDeviceToHost ) );
//printout results
for ( int i = 0; i < 10; i++ ) printf( "%f + %f = %f\n", a[ i ], b[ i ], c[ i ] );
//free memory and constructed objects on GPU
cudaFree( dev_a );
cudaFree( dev_b );
cudaFree( dev_c );
return 0;
}
===== ==== book.h ======
/*
* Copyright 1993-2010 NVIDIA Corporation. All rights reserved.
*
* NVIDIA Corporation and its licensors retain all intellectual property and
* proprietary rights in and to this software and related documentation.
* Any use, reproduction, disclosure, or distribution of this software
* and related documentation without an express license agreement from
* NVIDIA Corporation is strictly prohibited.
*
* Please refer to the applicable NVIDIA end user license agreement (EULA)
* associated with this source code for terms and conditions that govern
* your use of this NVIDIA software.
*
*/
#ifndef __BOOK_H__
#define __BOOK_H__
#include <stdio.h>
static void HandleError( cudaError_t err,
const char *file,
int line ) {
if (err != cudaSuccess) {
printf( "%s in %s at line %d\n", cudaGetErrorString( err ),
file, line );
exit( EXIT_FAILURE );
}
}
#define HANDLE_ERROR( err ) (HandleError( err, __FILE__, __LINE__ ))
#define HANDLE_NULL( a ) {if (a == NULL) { \
printf( "Host memory failed in %s at line %d\n", \
__FILE__, __LINE__ ); \
exit( EXIT_FAILURE );}}
template< typename T >
void swap( T& a, T& b ) {
T t = a;
a = b;
b = t;
}
void* big_random_block( int size ) {
unsigned char *data = (unsigned char*)malloc( size );
HANDLE_NULL( data );
for (int i=0; i<size; i++)
data[i] = rand();
return data;
}
int* big_random_block_int( int size ) {
int *data = (int*)malloc( size * sizeof(int) );
HANDLE_NULL( data );
for (int i=0; i<size; i++)
data[i] = rand();
return data;
}
// a place for common kernels - starts here
__device__ unsigned char value( float n1, float n2, int hue ) {
if (hue > 360) hue -= 360;
else if (hue < 0) hue += 360;
if (hue < 60)
return (unsigned char)(255 * (n1 + (n2-n1)*hue/60));
if (hue < 180)
return (unsigned char)(255 * n2);
if (hue < 240)
return (unsigned char)(255 * (n1 + (n2-n1)*(240-hue)/60));
return (unsigned char)(255 * n1);
}
__global__ void float_to_color( unsigned char *optr,
const float *outSrc ) {
// map from threadIdx/BlockIdx to pixel position
int x = threadIdx.x + blockIdx.x * blockDim.x;
int y = threadIdx.y + blockIdx.y * blockDim.y;
int offset = x + y * blockDim.x * gridDim.x;
float l = outSrc[offset];
float s = 1;
int h = (180 + (int)(360.0f * outSrc[offset])) % 360;
float m1, m2;
if (l <= 0.5f)
m2 = l * (1 + s);
else
m2 = l + s - l * s;
m1 = 2 * l - m2;
optr[offset*4 + 0] = value( m1, m2, h+120 );
optr[offset*4 + 1] = value( m1, m2, h );
optr[offset*4 + 2] = value( m1, m2, h -120 );
optr[offset*4 + 3] = 255;
}
__global__ void float_to_color( uchar4 *optr,
const float *outSrc ) {
// map from threadIdx/BlockIdx to pixel position
int x = threadIdx.x + blockIdx.x * blockDim.x;
int y = threadIdx.y + blockIdx.y * blockDim.y;
int offset = x + y * blockDim.x * gridDim.x;
float l = outSrc[offset];
float s = 1;
int h = (180 + (int)(360.0f * outSrc[offset])) % 360;
float m1, m2;
if (l <= 0.5f)
m2 = l * (1 + s);
else
m2 = l + s - l * s;
m1 = 2 * l - m2;
optr[offset].x = value( m1, m2, h+120 );
optr[offset].y = value( m1, m2, h );
optr[offset].z = value( m1, m2, h -120 );
optr[offset].w = 255;
}
#if _WIN32
//Windows threads.
#include <windows.h>
typedef HANDLE CUTThread;
typedef unsigned (WINAPI *CUT_THREADROUTINE)(void *);
#define CUT_THREADPROC unsigned WINAPI
#define CUT_THREADEND return 0
#else
//POSIX threads.
#include <pthread.h>
typedef pthread_t CUTThread;
typedef void *(*CUT_THREADROUTINE)(void *);
#define CUT_THREADPROC void
#define CUT_THREADEND
#endif
//Create thread.
CUTThread start_thread( CUT_THREADROUTINE, void *data );
//Wait for thread to finish.
void end_thread( CUTThread thread );
//Destroy thread.
void destroy_thread( CUTThread thread );
//Wait for multiple threads.
void wait_for_threads( const CUTThread *threads, int num );
#if _WIN32
//Create thread
CUTThread start_thread(CUT_THREADROUTINE func, void *data){
return CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)func, data, 0, NULL);
}
//Wait for thread to finish
void end_thread(CUTThread thread){
WaitForSingleObject(thread, INFINITE);
CloseHandle(thread);
}
//Destroy thread
void destroy_thread( CUTThread thread ){
TerminateThread(thread, 0);
CloseHandle(thread);
}
//Wait for multiple threads
void wait_for_threads(const CUTThread * threads, int num){
WaitForMultipleObjects(num, threads, true, INFINITE);
for(int i = 0; i < num; i++)
CloseHandle(threads[i]);
}
#else
//Create thread
CUTThread start_thread(CUT_THREADROUTINE func, void * data){
pthread_t thread;
pthread_create(&thread, NULL, func, data);
return thread;
}
//Wait for thread to finish
void end_thread(CUTThread thread){
pthread_join(thread, NULL);
}
//Destroy thread
void destroy_thread( CUTThread thread ){
pthread_cancel(thread);
}
//Wait for multiple threads
void wait_for_threads(const CUTThread * threads, int num){
for(int i = 0; i < num; i++)
end_thread( threads[i] );
}
#endif
#endif // __BOOK_H__
Существует два способа установить подходящий CUDA-драйвер (для Optimus и еще встроенных графических чипсетов на гибридных системных платах) - первое, описанное здесь, является самым легким, и второе описание является более громоздким, но эффективным также:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-355 nvidia-prime
sudo reboot
метода B здесь, но уже более старый (объясненный пользователем dschinn1001) - этот метод B является большим количеством humblesome и может быть опасным, но не вредным.:
, Как я могу Установить драйвер GT 520 Nvidia и Cuda 5.0 в Ubuntu13.04?
бета пакет драйвера для Nvidia для загрузки для Linux здесь:
http://www.nvidia.de/object/cuda_1_1_beta.html
Метод A является более простым, но не четким, как он взаимодействует с xscreensaver, и метод B является более старым, но пакет драйвера обновляется также в последнее время, и после того, как метод B сделан, он должен работать лучше с xscreensaver, обусловленным это, xscreensaver установлен. (Я протестировал метод на 13,10, и это работало очень хорошее, даже с xscreensaver. И я думаю, что остальная часть этого потока до аппаратных средств.)
, Кроме того, и в отношении шмеля с графическими чипсетами Optimus эти корректировки к шмелю необходимы также:
Я успешно установил CUDA использование runfile метода. Это немного более хитро для установки, потому что основной графический драйвер также должен быть установлен с помощью runfile метода (, Посмотрите Здесь ).
Попытка, устанавливающая всего драйвер. Это может быть сделано при помощи runfile метода. Это предложит Вам каждую часть установки, и можно отключить эти GL
библиотеки и инструментарии. Центр управления единицы давал мне проблемы также с должным к потребности образца CUDA использовать libGLU.so
вместо libGL.so
. Это - легкая фиксация при создании собственных примеров изучения.
Попытайтесь удалить драйвер Nvidia и непосредственно установить cuda без него. На новой Ubuntu 14.04 я следовал инструкциям от веб-сайт nvidia . Кроме проверки совместимых версий вещей (gcc, ядро), инструкции были:
sudo dpkg -i cuda-repo-ubuntu1404_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda
Счастливо, корректный драйвер Nvidia был установлен как побочный продукт шагов выше.
Я провел целый день, стремясь использовать" ppa:graphics-drivers/ppa" для обновления драйверов NVIDIA к версии 352. Все перестало работать. После одной установки gpu-manager.log сообщил, что драйверы были установлены, в то время как Xorg.0.log сообщит о противоположном.
nouveau драйвер был удален и помещен в черный список: склонные sudo - добираются - чистка удаляет xserver-xorg-video-nouveau кошку,/etc/modprobe.d/nouveau-nomodeset-jsrobin.conf помещают в черный список nouveau опции nouveau modeset=0, искажают nouveau от псевдонима lbm-nouveau прочь
, я наконец сдался и использовал просто "NVIDIA... мусорное ведро" решение.
Я попробовал sudo su, и склонный - добираются, установка cuda вместо sudo Кв. - получают установку cuda. Это работало.
sudo dpkg -i cuda-repo-ubuntu1404_7.5-18_amd64.deb
sudo apt-get update
sudo su
apt-get install cuda
См.: https://github.com/astorfi/Caffe_Deep_Learning/blob/master/Installation/readme.md. Это связано с установкой Caffe в сущности, но это обращается к установке CUDA также.