`
文章列表

CUDA--Unified Memory

    博客分类:
  • CUDA
      在我们编写CUDA程序时我们经常要对CPU和GPU上分配内存和管理,这样就增加了编写程序发复杂度。在cuda6后引入了统一寻址(Unified Memory)技术,该技术使得CPU和GPU使用同一个指针对同一块内存进行处理,省去了原始的在CPU和CPU分配内存然后来回拷贝的过程,简化了程序的编写。      统一寻址创建了一块托管内存(managed memory),这是在CPU和GPU共享的内存,它在CPU和GPU之间架起了桥梁。这块托管内存CPU和GPU都能访问通过单一指针访问得到,最关键的一点是,系统会自动地在host端和device端转移在Unified Memory内 ...

CUDA-流

    博客分类:
  • CUDA
 页锁定内存:     cudaHostAlloc()分配页锁定内存,页锁定内存也称为固定内存或不可分页内存,它有一个重要的属性:操作系统将不会对这块内存分页并交换到磁盘上,从而确保了该内存始终驻留在物理内存中。 流:     cuda流用于任务的并行。任务并行性是指并行执行两个或多个不同的任务,而不是在大量数据上执行同一个任务的数据并行性。比如处理同一副图,你用一个流处理左边半张图片,再用第二个流处理右边半张图片,这两个流中的代码同时执行,加快了处理速度。 示例: #include <stdio.h> #include <cuda_runtime.h> ...

docke学习

1.安装docker   参考地址:http://www.oschina.net/news/54811/docker-1-0-1-is-provided-test-on-ubuntu-14-04-lts 2.创建docker用户及提交镜像  参考地址:http://blog.csdn.net/rually/article/details/51439212 3.docker学习  参考地址:http://www.open-open.com/lib/view/open1423703640748.html#articleHeader12   提交镜像:   fangbing@fa ...
1.  程序编译成功后,运行时错误:   error while loading shared libraries: libmpi.so.20: cannot open shared object file: No such file or directory   解决方法:   cp /usr/local/openmpi/lib/libmpi.so.20 /usr/lib 2.在使用fftw库时,添加cuda程序时会出现如下错误   /usr/include/fftw3.h(371): error: identifier "__float128" is und ...

CUDA-aware MPI

    博客分类:
  • CUDA
    现在越来越多的高性能并行计算将MPI与GPU结合起来:MPI的将任务并行分发,CUDA进行并行计算。大大提高了并行效率。然而我们知道在GPU上进行计算时常常出现数据重CPU到GPU或从GPU到CPU的拷贝过程,在数据量大的情况下这种拷贝过程往往会花费很多时间。因此英伟达公司实现了一种新的技术:CUDA-aware MPI。改技术实现了GPU缓存的直接访问,这样就很好地避免了在使用MPI+CUDA进行并行计算时数据拷贝花费的大量时间。 CUDA-aware MPI 具体介绍:https://devblogs.nvidia.com/parallelforall/introduction ...
使用CUDA实现两个数组的相加,熟悉CUDA相关函数的使用。 #include <cuda_runtime.h> #include <stdio.h> __global__ void addKernel( int* c, const int* a, const int* b ) { int i = threadIdx.x; c[i]= a[i] + b[i]; } cudaError_t CUDA_Add( const int* a, const int* b, int* out, int size ) { ...

MPI学习笔记

    博客分类:
  • MPI
     MPI是一个跨语言的通讯协议,用于编写并行计算机。支持点对点和广播。MPI是一个信息传递应用程序接口,包括协议和和语义说明,他们指明其如何在各种实现中发挥其特性。MPI的目标是高性能,大规模性,和可移植性。MPI在今天仍为高性能计算的主要模型。 1.MPI初始函数    头文件: mpi.h/mpif.h.   int MPI_Init(int *argc, char ***argv)      启动MPI环境,标志并行代码的开始.     并行代码之前,第一个mpi函数(除MPI_Initialize()外).     要求main必须带能运行,否则出错.  通信子(通信空间) ...
1. OpenMP基本概念        OpenMP是共享存储体系结构上的 一个并行编程模型。适合于SMP共享内存多处理系统和多核处理器体系结构。    OpenMP是基于线程的并行编程模型。   OpenMP采用Fork-Join并行执行方式:   OpenMP程序开始于一个单独的主线程(Master Thread),然后主线程一直串行执行,直到遇见第一个并行域(Parallel Region),然后开始并行执行并行域。其过程如下:   Fork:主线程创建一个并行线程队列,然后,并行域中的代码在不同的线程上并行执行;   Join:当并行域执行完之后,它们或被同步或被中断,最后只有 ...
1.线程与进程      相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。在串行程序基础上引入线程和进程是为了提高程序的并发度,从 ...
Android应用的更新检测与安装大致步骤就是,从服务器获取应用的版本信息->与当前手机应用版本信息比较->下载最新版本应用->安装 1.从服务器获取应用的版本信息并检测是否更   /* * 检测是否有新版本,有点话升级 */ private void checkUpdate() { new Thread(){ public void run() { Message msg=Message.obtain(); try { URL url=new URL(getString(R.string.s ...
FragmentTabHost 实现底部android底部菜单的切换 效果图:  布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > < ...
     在Android我们能通过建立当前应用的数据库SQLiteDataBase,供本应用对数据的存取。但当多个应用需要共用同一数据时,我们怎么办呢?在Android系统中没有一个公共的内存区域,供多个应用共享存储数据。这里就要用到ContentProvider(内容提供者)。     Android中的ContentProvider机制可支持在多个应用中存储和读取数据。这也是跨应用共享数据的唯一方式。     ContentProvider 实际上就是提供一个接口方法,多个应用可以通过接口方法访问同一数据库的内容,即用到ContentResolver(内容解析者)来调用方法。  在 ...
    Android提供了几种数据或文件的存储方式:     读写sdcard,SharedPreference, 数据库 下面初步了解一下。 一.读写sdcard。     android中文件读写到sdcard与一般java思路一样,通过I/O流进行读写。下面直接代码:    添加权限:   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>   public class SavecontentService { private C ...
   Android 常见动画为补间动画(透明,缩放,平移,旋转)与帧动画。下面说说补间动画的实现。    1.在配置文件中建立动画       在res目录下建立anim文件夹,在res/anim目录下建立动画配置文件如下:      透明动画alpha.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 各动 ...

Ajax之XmlHttpRequest

    博客分类:
  • web
        Ajax是一种支持异步请求的技术。简而言之JavaScript向服务器提出请求并处理响应,而不阻塞用户 。         XmlHttpRequest是Ajax的核心,可以在不想服务器提交整个页面的前提下实现局部刷新。          XMLHttpRequest 对 ...
Global site tag (gtag.js) - Google Analytics