SSE coding

SSE指令集入门教程

CUDA basic knowledge

物理概念、CUDA基本概念、CUDA语法、调试器、错误处理

HashMap

什么是HashMap?

unordered_map

unordered_map是非线程安全的,应该如何处理多线程情况

CPU多线程

1. TBB中的concurrent_hash_map

GPU多线程

2.CUDA

cuda code error

thrust

[thrust::system::system_error]

1
2
3
4
5
6
7
cudaMalloc((void**)&nanFlags_dev, N*sizeof(int));
getNANpts << <fullBlocksPerGrid, blockSize >> >(N, z_dev, nanFlags_dev);
cudaDeviceSynchronize();
thrust::device_ptr<int> thrust_nanflags(nanFlags_dev);
//int num_of_nan = thrust::reduce(thrust_nanflags, thrust_nanflags + N, (int)0, thrust::plus <int >()); //统计有多少个NAN点
int num_of_nan = thrust::count(thrust_nanflags, thrust_nanflags + N, 1); //统计有多少个NAN点
cudaDeviceSynchronize();

出现错误:

原因:核函数getNANpts写错了。只对nanFlags_dev中的一个位置进行初始化,其他位置没有赋值,所以进行计算时会错误。

CUDA知识片段

  1. 线程模型适合用于OpenMP。进程模型适用于MPI

    在GPU环境下:CUDA使用一个线程块(block)构成网格(grid)。这可以看成是一个进程(即线程块)组成的队列(即网格),而进程之间没有通信。每一个线程块内部有很多线程以批处理的方式运行,称为线程束(warp)

C++ STL1

C++ 内存管理1

C++ 泛型编程

编程知识与VS错误

[TOC]

生成随机数

打乱数组中的内容

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×