- 博客(13)
- 收藏
- 关注
原创 CUDA笔记2-循环展开
#CUDA循环展开---##串行循环展开 [loop unrolling](http://en.wikipedia.org/wiki/Loop_unwinding)是一种牺牲程序的尺寸来加快执行速度的优化方法。拿数组来说,数组的数据在内存中是连续存储的,每次取数据的时候可以一次抓取相邻的多个数据,从而减少从内存中读取数据的时间,优化程序。 例子 : 假设n可
2014-06-22 12:15:52 1774 2
原创 Cuda笔记1 --- 内积
/* CUDA 内积简单例程 */const int THREAD_DIM = 256;void __global__ dot(const float* d_a, const float* d_b, float* d_c , const int n) {int tid = threadIdx.x + blockIdx.x * blockDim
2014-06-12 20:05:23 683
原创 阿姆达尔定律和Gustafson law
Strong scaling is a measure of how, for a fixed overall problem size, the time to solution decreases as more processors are added to a system. An application that exhibits linear strong scaling has a
2014-05-18 14:50:58 2986
原创 汉诺塔问题的两种解法
/* 汉诺塔 递归解法 */#include using namespace std;void Hanoi(int n,char src,char mid,char dest){ if (n == 1) { cout"<<dest<<endl; return; } Hanoi(n-1,src,dest,mid); // 将最上面的n-1个盘子通过 dest 移动到
2014-05-13 17:14:21 1363
原创 MPI 实现梯形积分法
梯形面积和 = h * ( f(x0)/2 + f(x1) + ....... + f(xn)/2) h = (b-a)/n;// 正常版伪代码h= (b-a)/n;approx = (f(a)+f(b))/2.0;for (int i=0;i<n;i++){ x_i = a + i*h; approx += f(x_i);}approx =
2014-05-13 16:52:35 6343 3
原创 递归-棋盘分割问题
Language:Default棋盘分割Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 11819 Accepted: 4175Description将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继
2014-05-12 19:28:42 896
原创 一个递归问题
// Created by baicai on 14-5-10.// 递归问题/* 递归中两个重要的点 : 1.递归公式 2.终止条件 *//* 函数的局部变量存在栈中,可能会栈溢出,所以可以考虑使用全局数组,或者动态分配数组 *//* 游戏问题: 类似迷宫求解,自相似性表现在每走一步的探测方式相同,可以用递归方法求解, 通过枚举出所有从起点到终点的路径 *//
2014-05-11 19:03:50 591
原创 大整数加减乘除
LOW-END 版:#include #include #include #include using namespace std;const int MAX=9999;class Bignum{private: int num[50]; int len;public: bool operator<(const Bignum& A){ if(*this
2014-05-08 16:07:18 640
原创 画家问题和拨钟问题 枚举法 举例
画家问题:总时间限制: 1000ms 内存限制: 65536kB描述有一个正方形的墙,由N*N个正方形的砖组成,其中一些砖是白色的,另外一些砖是黄色的。Bob是个画家,想把全部的砖都涂成黄色。但他的画笔不好使。当他用画笔涂画第(i, j)个位置的砖时, 位置(i-1, j)、 (i+1, j)、 (i, j-1)、 (i, j+1)上的砖都会改变颜色。请你帮助Bob计算出最
2014-05-07 22:57:07 5188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人