видио карта GTX 760 и CUDA

Автор veleslav, 12 февраля 2015, 11:27:15

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

veleslav

ребят подскажите.

есть комп с картой GTX 760

дрова ставил с сайта нвидии. как устанавливать нашел в интернете.


проблема в следующем.

все работает нормально. НО в 3D редакторе blender3d нет опции с поддержкой аппаратного рендера через CUDA.

рендер сайклс.

может кто что посоветует? даже не знаю с чего начинать

ihammers

Для начало проверьте работает ли у вас CUDA и во-вторых Blender3d (не blender?) собран с поддержкой CUDA?
Debian GNU/Linux Bookworm, LXQt/OpenBox: AMD Ryzen 5 5600G / 64Gb RAM
_______________________________
Debian GNU/Linux Bookworm, без графики: AMD Phenon X4 / 16Gb RAM
_______________________________
Debian GNU/Linux Bookworm, LXQt/OpenBox: Acer Aspire One 722 AMD C60 / 8Gb RAM / ATI HD6290

veleslav

я вот даже не знаю как он собран, с поддержкой али нет.

aptitude install blender3d

так я его ставил. как он собран в репозитории мне неведомо.

а вот как проверить работает ли CUDA я даже не знаю.

если расскажите подробнее о том как собрать blender3d самому но с поддержкой CUDA буду премного благодарен.
ну и хотелось бы заодно узнать про CUDA в линуксе в целом.
накидайте хотябы ссылок

Leo

Обратитесь на Jabber-конференцию blender@conference.jabber.ru, там спецы по Blender сидят.

ihammers

#4
Цитата: veleslav от 16 февраля 2015, 08:43:52
aptitude install blender3d

так я его ставил. как он собран в репозитории мне неведомо.
В официальном репозитории такого пакета нету.

Цитата: veleslav от 16 февраля 2015, 08:43:52
а вот как проверить работает ли CUDA я даже не знаю.

если расскажите подробнее о том как собрать blender3d самому но с поддержкой CUDA буду премного благодарен.
ну и хотелось бы заодно узнать про CUDA в линуксе в целом.
накидайте хотябы ссылок
Насчёт, того как проверить...
Например написать программу (или найти) сложения векторов:
Открыть содержимое (спойлер)

http://documen.tician.de/pycuda/
import pycuda.autoinit
import pycuda.driver as drv
import numpy

from pycuda.compiler import SourceModule
mod = SourceModule("""
__global__ void multiply_them(float *dest, float *a, float *b)
{
  const int i = threadIdx.x;
  dest[i] = a[i] * b[i];
}
""")

multiply_them = mod.get_function("multiply_them")

a = numpy.random.randn(400).astype(numpy.float32)
b = numpy.random.randn(400).astype(numpy.float32)

dest = numpy.zeros_like(a)
multiply_them(
        drv.Out(dest), drv.In(a), drv.In(b),
        block=(400,1,1), grid=(1,1))

print dest-a*b
[свернуть]
Информацию по CUDA можно найти на сайте разработчика, то есть NVidia.
Пример на Си (вырезка из документации):
Открыть содержимое (спойлер)

// Matrices are stored in row-major order:
// M(row, col) = *(M.elements + row * M.width + col)
typedef struct {
    int width;
    int height;
    float* elements;
} Matrix;

// Thread block size
#define BLOCK_SIZE 16

// Forward declaration of the matrix multiplication kernel
__global__ void MatMulKernel(const Matrix, const Matrix, Matrix);

// Matrix multiplication - Host code
// Matrix dimensions are assumed to be multiples of BLOCK_SIZE
void MatMul(const Matrix A, const Matrix B, Matrix C)
{
    // Load A and B to device memory
    Matrix d_A;
    d_A.width = A.width; d_A.height = A.height;
    size_t size = A.width * A.height * sizeof(float);
    cudaMalloc(&d_A.elements, size);
    cudaMemcpy(d_A.elements, A.elements, size,
               cudaMemcpyHostToDevice);
    Matrix d_B;
    d_B.width = B.width; d_B.height = B.height;
    size = B.width * B.height * sizeof(float);
    cudaMalloc(&d_B.elements, size);
    cudaMemcpy(d_B.elements, B.elements, size,
               cudaMemcpyHostToDevice);

    // Allocate C in device memory
    Matrix d_C;
    d_C.width = C.width; d_C.height = C.height;
    size = C.width * C.height * sizeof(float);
    cudaMalloc(&d_C.elements, size);

    // Invoke kernel
    dim3 dimBlock(BLOCK_SIZE, BLOCK_SIZE);
    dim3 dimGrid(B.width / dimBlock.x, A.height / dimBlock.y);
    MatMulKernel<<<dimGrid, dimBlock>>>(d_A, d_B, d_C);

    // Read C from device memory
    cudaMemcpy(C.elements, Cd.elements, size,
               cudaMemcpyDeviceToHost);

    // Free device memory
    cudaFree(d_A.elements);
    cudaFree(d_B.elements);
    cudaFree(d_C.elements);
}

// Matrix multiplication kernel called by MatMul()
__global__ void MatMulKernel(Matrix A, Matrix B, Matrix C)
{
    // Each thread computes one element of C
    // by accumulating results into Cvalue
    float Cvalue = 0;
    int row = blockIdx.y * blockDim.y + threadIdx.y;
    int col = blockIdx.x * blockDim.x + threadIdx.x;
    for (int e = 0; e < A.width; ++e)
        Cvalue += A.elements[row * A.width + e]
                * B.elements[e * B.width + col];
    C.elements[row * C.width + col] = Cvalue;
}


Read more at: http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#ixzz3RtMzTHhr
Follow us: @GPUComputing on Twitter | NVIDIA on Facebook
[свернуть]
Debian GNU/Linux Bookworm, LXQt/OpenBox: AMD Ryzen 5 5600G / 64Gb RAM
_______________________________
Debian GNU/Linux Bookworm, без графики: AMD Phenon X4 / 16Gb RAM
_______________________________
Debian GNU/Linux Bookworm, LXQt/OpenBox: Acer Aspire One 722 AMD C60 / 8Gb RAM / ATI HD6290

Astar

jessie, стоит nvidia-kernel-dkms, nvidia-glx, nvidia-xconfig и libcuda1
Последний blender, скаченный с оф сайта - рендерит сусликом куда-ядрами вовсю.

Александр Кряжев

Берите лучше Блендер отсюда: http://download.blender.org/release/
Да, не тру-метод, но - всегда свежая версия.

veleslav

всем спасибо ребят....

все что нужно все написали....

всех благ вам

ihammers

To veleslav, если тема решена, но добавьте в название темы [Решено].
Debian GNU/Linux Bookworm, LXQt/OpenBox: AMD Ryzen 5 5600G / 64Gb RAM
_______________________________
Debian GNU/Linux Bookworm, без графики: AMD Phenon X4 / 16Gb RAM
_______________________________
Debian GNU/Linux Bookworm, LXQt/OpenBox: Acer Aspire One 722 AMD C60 / 8Gb RAM / ATI HD6290

Utility

Свои 5 копеек,
Открыть содержимое (спойлер)
apt-get -s --no-install-recommends install libcuda1
[свернуть]
не спасло;
после
Открыть содержимое (спойлер)
apt-get -s --no-install-recommends install  linux-headers-`uname -r`
[свернуть]
# пригодится для dpkg-reconfigure nvidia-kernel-dkms не помогло
сразу же
Открыть содержимое (спойлер)
apt-get -s --no-install-recommends-install install nvidia-cuda-toolkit
[свернуть]
всё встало
после
Открыть содержимое (спойлер)
apt-get -s purge libcuda1
[свернуть]
попытаеться удалить
Открыть содержимое (спойлер)
Следующие пакеты устанавливались автоматически и больше не требуются:
  g++ g++-4.9 libcublas6.0 libcudart6.0 libcufft6.0 libcufftw6.0 libcurand6.0
  libcusparse6.0 libnppc6.0 libnppi6.0 libnpps6.0 libnvblas6.0 libnvtoolsext1
  libnvvm2 libstdc++-4.9-dev libthrust-dev nvidia-libopencl1 nvidia-opencl-dev
  opencl-headers
Для их удаления используйте «apt-get autoremove».
Пакеты, которые будут УДАЛЕНЫ:
  libcuda1* libcuinj64-6.0* nvidia-cuda-dev* nvidia-cuda-toolkit*
  nvidia-profiler*
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 5 пакетов, и 0 пакетов не обновлено.
[свернуть]
Спасибо


Cообщение объединено 28 июня 2015, 21:46:59

последнее с purge, для показа, от чего зависит
Стационар = MB: ASRock N68-gs4 FX R2.0 ; CPU: Athlon II x3 460 => Phenom B60; RAM: 2x Kingston KVR1333D3N9/4G; VGA: zotac gt630 4G
Ноутбук = ASUS x55a = MB: chipset HM70; CPU: Celeron B820; RAM: 2G: VGA: intel3000; audio VT1802