ubuntu 17.04 cuda

前端之家收集整理的这篇文章主要介绍了ubuntu 17.04 cuda前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_0@Install NVIDIA CUDA on Ubuntu 17.04

@H_301_0@The official download page only have package for 16.04 and 14.04,but actually Ubuntu 17.04 can install CUDA via apt directly. https://launchpad.net/ubuntu/zesty/+source/nvidia-cuda-toolkit Install

@H_301_0@Assume you already have NVIDIA graphic driver installed and just need CUDA. Only the following command is needed.

@H_301_0@sudo apt-get install nvidia-cuda-dev nvidia-cuda-toolkit nvidia-nsight

@H_301_0@NOTE: Ubuntu 17.04 use GCC6,which is not supported by nvcc,the package will install clang-3.8 (the default clang version for 17.04 is clang 4.0,they can co-exist). Compile

@H_301_0@Compile cuda code using nvcc -ccbin clang-3.8 hello-world.cu,remember to use cu as suffix instead of c other wise you will have error like the following

nvcc warning : The ‘compute_20’,‘sm_20’,and ‘sm_21’ architectures are deprecated,and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
square.c:6:1: error: unknown type name ‘__global__’
__global__ void cube(float * d_out,float * d_in){
@H_301_0@You can use the following code to test if you have correct installation

/*
* Example from Udacity Intro to Parallel Programming https://www.udacity.com/course/intro-to-parallel-programming--cs344
* nvcc -ccbin clang-3.8 cube.cu
*/
#include <stdio.h>

__global__ void cube(float * d_out,float * d_in){
	int idx = threadIdx.x;
	float f = d_in[idx];
	d_out[idx] = f * f * f;
}

int main(int argc,char ** argv) {
	const int ARRAY_SIZE = 64;
	const int ARRAY_BYTES = ARRAY_SIZE * sizeof(float);

	// generate the input array on the host
	float h_in[ARRAY_SIZE];
	for (int i = 0; i < ARRAY_SIZE; i++) {
		h_in[i] = float(i);
	}
	float h_out[ARRAY_SIZE];

	// declare GPU memory pointers
	float * d_in;
	float * d_out;

	// allocate GPU memory
	cudaMalloc((void**) &d_in,ARRAY_BYTES);
	cudaMalloc((void**) &d_out,ARRAY_BYTES);

	// transfer the array to the GPU
	cudaMemcpy(d_in,h_in,ARRAY_BYTES,cudaMemcpyHostToDevice);

	// launch the kernel
	cube<<<1,ARRAY_SIZE>>>(d_out,d_in);

	// copy back the result array to the cpu
	cudaMemcpy(h_out,d_out,cudaMemcpyDeviceToHost);

	// print out the resulting array
	for (int i =0; i < ARRAY_SIZE; i++) {
		printf("%f",h_out[i]);
		printf(((i % 4) != 3) ? "\t" : "\n");
	}

	cudaFree(d_in);
	cudaFree(d_out);

	return 0;
}
@H_301_0@Reference

https://www.udacity.com/course/intro-to-parallel-programming--cs344
@H_301_0@https://medium.com/@at15/install-nvidia-cuda-on-ubuntu-17-04-823300ab7bcc

猜你在找的Ubuntu相关文章