![](https://img-blog.csdnimg.cn/20201108101023794.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
【高性能计算】
文章平均质量分 84
抛开高兴能的面纱:MPI,CUDA,OpenMP,OpenACC,等等
rtoax
行百里者半九十
展开
-
HPC高性能运算的发展应用场景以及高性能计算技术总结
计算需求和计算能力的缺口发展形式GPU的引入GUP长什么样CPU与GPU架构GPU计算模型几种高性能开发工具GPU算法的实现性能的对比GPU Java实现MPI与CUDA的混合实现...原创 2020-04-04 12:22:10 · 2739 阅读 · 0 评论 -
跨平台异步IO库 libuv 源代码接口详解
libuv强制执行异步的,事件驱动的编程风格。它的核心工作是提供事件循环以及基于回调的I / O和其他活动的通知。libuv提供了诸如计时器,无阻塞网络支持,异步文件系统访问,子进程等核心实用程序。本文见了libUV的文件操作、网络操作、线程、进程、高级事件循环、实用工具及源代码接口讲解。这本“书”是一小部分关于使用libuv作为高性能事件I / O库的教程,该库在Windows和Unix上提供相同的API。它旨在涵盖libuv的主要领域,但不是讨论所有功能和数据结构的全面参考。有关完整的详细信息,请查翻译 2020-10-01 20:11:09 · 2228 阅读 · 1 评论 -
PyCUDA Documentation
目录ContentsIndices and tablesPyCUDANavigationQuick searchPyCUDA gives you easy, Pythonic access toNvidia’sCUDAparallel computation API. Several wrappers of the CUDA API already exist–so why the need for PyCUDA? Object cleanup tied to lifet...转载 2020-07-27 17:12:07 · 325 阅读 · 0 评论 -
并发编程的三大核心
图片来源:https://mp.weixin.qq.com/s/IZ_xs72Bqy0U3DzsZoQK-Q原创 2020-05-22 22:45:56 · 362 阅读 · 0 评论 -
OpenSubdiv:大规模并行CPU和GPU架构上实现高性能细分表面
http://graphics.pixar.com/opensubdiv/overview.htmlOpenSubdiv是一组开源库,它们在大规模并行CPU和GPU架构上实现高性能细分表面(subdiv)评估。该代码路径经过优化,可在静态帧速率下以静态拓扑绘制变形细分。最终的极限曲面将皮克斯的Renderman与数值精度相匹配。该代码体现了皮克斯(Pixar)数十年的研究和经验,以及Microsoft Research和皮克斯(Pixar)之间在快速GPU绘制方面的最新且仍在积极合作。OpenSu.原创 2020-05-22 22:33:48 · 750 阅读 · 0 评论 -
OpenVDB:梦工厂的有效存储和处理离散在三维网格上的稀疏体积数据C++库
主页:https://www.openvdb.org/源代码:https://github.com/AcademySoftwareFoundation/openvdb欢迎OpenVDB是获得奥斯卡奖的开源C ++库,它包含新颖的分层数据结构和一套工具,用于有效存储和处理离散在三维网格上的稀疏体积数据。它是由DreamWorks Animation开发的,用于故事片制作中通常遇到的体积应用程序,现在由Academy Software Foundation(ASWF)进行维护。新闻2..翻译 2020-05-22 22:34:01 · 1830 阅读 · 0 评论 -
RenderMan:渲染技术
https://renderman.pixar.com/渲染人世界上最通用的渲染器凭借针对基于物理的渲染进行了优化的新的最新框架,RenderMan可以为任何生产管道提供无与伦比的灵活性。RenderMan不仅在Pixar上用于我们自己的故事片,而且在整个行业中都用于渲染视觉效果和动画,从而使可伸缩性和多功能性成为其核心优势之一。现在,您可以直接从Pixar Animation Studios获得开箱即用的制作工具,包括材料和轻型运输……无需开发。当渲染皮肤和其他柔...原创 2020-05-17 20:40:44 · 643 阅读 · 0 评论 -
CUDA(*.cu)程序与C(*.c)源程序混合编译
原创 2020-05-17 12:57:46 · 978 阅读 · 0 评论 -
C语言线程创建与锁机制
#include<stdio.h>#include<pthread.h> //线程#include<semaphore.h> //锁#define N 10void *thread(void *vargp);char **ptr;static int count = 0;int main(int argc, char **argv){...转载 2018-06-07 14:02:09 · 2264 阅读 · 0 评论 -
c++用宏定义来编写函数#define
#include<iostream>#include<stdlib.h>#include<assert.h>#include"hello.h"#ifdef _OPENMP#include<omp.h>#endif#define CHECK(arg){ \ ...原创 2017-12-14 22:43:47 · 3728 阅读 · 0 评论 -
基于OpenMP的二维VTI介质一阶拟声波有限差分正演
#include#include#include#include#include "/home/Toa/hc/cjbsegy.h"#include "/home/Toa/hc/fft.c"#include "/home/Toa/hc/alloc.c"#include "/home/Toa/hc/complex.c"#ifdef _OPENMP#include #原创 2017-09-27 22:15:48 · 780 阅读 · 0 评论 -
一个基于OpenCL的三维有限差分kernel核函数
https://rtoax.blog.csdn.net/article/details/104266071/* * Copyright 1993-2010 NVIDIA Corporation. All rights reserved. * * Please refer to the NVIDIA end user license agreement (EULA) associate...原创 2020-02-11 17:32:17 · 759 阅读 · 0 评论 -
NVIDIA OpenCL SDK Code Samples
Table of ContentsNVIDIA OpenCL SDK Code SamplesOpenCL Multi ThreadsUsing Inline PTX with OpenCLOpenCL Marching Cubes IsosurfacesOpenCL TridiagonalOpenCL Device QueryOpenCL Bandwidth Test...原创 2020-02-11 17:10:51 · 919 阅读 · 0 评论 -
GPU Architect Functional Verification
GPU Architect "Functional Verification"要做什么:1.研究下一代GPU架构和最先进的新计算特性。2.使用随机方法在全芯片级验证并验证新的GPU架构和复杂的计算特性。3.与GPU架构沟通并计算功能设计师制定随机测试计划。4.设计和开发随机方法和基础设施来生成随机测试。5.在各种平台上运行和调试随机测试,例如功能模拟器,仿真器和芯片。6.与ASIC团队合作,确定并...翻译 2018-06-05 10:17:19 · 499 阅读 · 0 评论 -
结构体数组(SoA)与数组结构体(AoS)
1.结构体数组(SoA)/* * SoA 结构体数组定义 */struct InnerArray{ float x[LEN]; float y[LEN];};/* * CPU -> SoA 结构体数组的CPU计算形式 */void testInnerArrayHost(InnerArray *A, InnerArray *C, const int n){转载 2017-11-29 19:32:22 · 7456 阅读 · 4 评论 -
CUDA零拷贝内存(zerocopy memory)
为了实现CPU与GPU内存的共享,cuda采用了零拷贝内存,它值固定内存的一种,当然,也就是实际存储空间实在cpu上。零拷贝内存的延迟高,在进行频繁的读写操作时尽量少用,否则会大大降低性能。/* *创建固定内存映射 * * flags: cudaHostAllocDefault: make cudaHostAlloc same as "cudaMallocHost"原创 2017-11-29 16:07:25 · 6643 阅读 · 0 评论 -
CUDA内存分配、释放、传输,固定内存
源代码来源:点击打开链接cudaMalloc((float **)&d_a, nbytes)原创 2017-11-29 15:06:13 · 13063 阅读 · 0 评论 -
CUDA全局变量(__device__)的初始化与使用:cudaMemoryToSymbol、cudaMemoryFromSymbol、cudaGetSymbolAddress
在cuda中在设备(device)中声明一个全局变量用__device__关键字修饰:__device__ float devData;初始化为:float value = 3.14f;cudaMemcpyToSymbol(devData, &value, sizeof(float));在使用结束后,将其转回host:cudaMemcpyFromSymbol(&value, de原创 2017-11-29 14:24:38 · 12918 阅读 · 1 评论 -
CUDA:在GPU上实现核函数的嵌套以及编译运行
#include "../common/common.h"#include #include /* * A simple example of nested kernel launches from the GPU. Each thread displays * its information when execution begins, and also diagnostics wh转载 2017-11-28 21:59:01 · 3742 阅读 · 6 评论 -
CUDA:使用nvprof工具计时
CUDA在运行程序时加上nvprof会对程序进行性能分析,这种性能分析最重要的就是统计不同函数的运行时间(占比)。-bash-4.1$ nvprof ./a./a Starting...==19114== NVPROF is profiling process 19114, command: ./aVector size 32Execution configure >>Arrays原创 2017-11-28 16:24:50 · 5651 阅读 · 2 评论 -
GTK实现:俄罗斯方块小游戏源代码(RussiaCube.c)
/* * File: main.c * Author: ldd * * Created on 2012年1月8日, 下午12:38 */ #include #include #include #include #include #include typedef struct ACTIVE_BLOCK_struct{ int block[4][4];转载 2017-10-12 20:51:04 · 1149 阅读 · 0 评论 -
基于GPU加速的二维TTI介质一阶拟声波方程有限差分地震正演模拟
//a#########################################################//a## 2D Acoustic TTI Medium Forward //a## Ps : P + sv wave and get rid of sv //a## GPU(CUDA) //a##//a##/*a***原创 2017-09-08 16:23:36 · 834 阅读 · 0 评论 -
基于GPU加速的二维VTI介质一阶拟声波方程有限差分地震正演模拟
//a#########################################################//a## 2D Acoustic VTI Medium Forward //a## Ps : P + sv wave and get rid of sv //a## GPU(CUDA) //a##//a##/*a***原创 2017-09-08 16:21:54 · 734 阅读 · 0 评论 -
基于GPU加速的二维VTI介质二阶弹性波方程有限差分地震正演模拟
//a#########################################################//a## 2D Elastic VTI Medium Forward //a## Ps : P0 + sv wave and get rid of sv //a## GPU(CUDA) //a##//a##/*a***原创 2017-09-08 16:19:49 · 1275 阅读 · 0 评论 -
基于GPU加速的三维VTI介质一阶拟声波方程有限差分地震正演模拟
//a#########################################################//a## 3D Acoustic VTI Medium Forward //a## //a## Ps :GPU(CUDA) //a##//a##/*a***************************//a##Function原创 2017-09-07 21:19:24 · 966 阅读 · 0 评论 -
Java与Cuda混合编程
基本上和Java与C语言混合编程(链接)相同,就是在生成动态库的编译过程不同。class NativeMethod{ public native void writefloat(int nx,int nz);}public class Main{ public static void main(String[] args){原创 2017-09-07 20:18:55 · 1907 阅读 · 4 评论 -
Cuda:invalid device pointer
cuda编程中调用一个判断cuda是否出错的函数如下:void check_gpu_error (const char *msg) { cudaError_t err = cudaGetLastError (); if (cudaSuccess != err) { printf("Cuda error: %s:原创 2017-09-07 19:39:33 · 2368 阅读 · 0 评论 -
Gtk与Cuda混合编程
大家都知道,不同的编译器有不同的-L和-I,而在编译过程中要实现两种编译器的混合使用,利用Makefile是一个很好地解决方案,比如之前在mpi与cuda混合编程中讨论的那样,基于图形界面的GTK编程也只是在gcc 编译的基础之上加上gtk的库函数(`pkg-config --cflags --libs gtk -2.0`)而已,所以通过本人的实际操作,用Makefile解决也是可以的。这里需要注原创 2017-09-07 19:34:39 · 568 阅读 · 2 评论 -
基于MPI的二维VTI介质一阶拟声波方程有限差分地震正演模拟(一维数组)
//#########################################################//## 2D Acoustic VTI Medium Forward //## Ps : P + sv wave and get rid of sv //## Ron原创 2017-09-08 16:50:34 · 946 阅读 · 0 评论 -
基于MPI和CUDA的三维各向同性二阶声波方程有限差分地震正演模拟(差分部分来自Madagascar)
/*This is how to configure lines :#mpicc -o a test.c -lcudart -L/usr/local/cuda-7.5/lib64 -I/usr/local/cuda-7.5/includenvcc -o a Toa_gpu_3dFD.cu -I/home/leonvel/software/mpi/mpich/include -L/home原创 2017-09-08 16:48:18 · 2332 阅读 · 1 评论 -
基于MPI的三维各向同性一阶声波方程有限差分地震正演模拟
#include#include#include#include#include "mpi.h"#include "/home/Toa/hc/cjbsegy.h"#include "/home/Toa/hc/fft.c"#include "/home/Toa/hc/alloc.c"#include "/home/Toa/hc/complex.c"main(int argc,cha原创 2017-09-08 16:34:20 · 1355 阅读 · 4 评论 -
基于MPI的二维VTI介质二阶拟声波方程有限差分地震正演模拟
//#########################################################//## 2D Acoustic VTI Medium Forward //## Ps : P + sv wave and get rid of sv //## Ron原创 2017-09-08 16:28:18 · 975 阅读 · 0 评论 -
基于MPI的二维VTI介质一阶拟声波方程有限差分地震正演模拟
//#########################################################//## 2D Acoustic VTI Medium Forward //## Ps : P + sv wave and get rid of sv //## Ron原创 2017-09-08 16:26:47 · 729 阅读 · 1 评论 -
Mpi与Cuda混合编程(Makefile)
需要建立一个.c的MPI程序和一个.cu的CUDA程序,MPI程序中调用CUDA中的函数来完成并行与GPU的混合编程,我查询了很多资料和博客,最终得出结论,还是Google比较强大,百度什么的还是搜不到完整的讲解MPI程序如下(文件名test.c)#include#include#include#include#include "mpi.h"void fun ( fl原创 2017-09-06 21:38:59 · 4858 阅读 · 2 评论 -
基于CUDA的VTI介质有限差分正演模拟与逆时偏移及ADCIGs提取
简单明了“CUDA”、“C语言”、“nvcc”、“VTI介质”、“RTM”、“全孔径接收”、“照明”、“拉普拉斯滤波”、“角度域共成像点道集”、“Poynting矢量”;在此做个备份!直接上代码吧!/*******************************************************a* 2D Quasi Acoustic VTI原创 2018-02-01 14:04:24 · 1461 阅读 · 8 评论 -
基于CUDA的TTI介质逆时偏移与ADCIGs提取
简单明了“CUDA”、“C语言”、“nvcc”、“TTI介质”、“RTM”、“全孔径接收”、“照明”、“拉普拉斯滤波”、“角度域共成像点道集”、“Poynting矢量”;在此做个备份!直接上代码吧!//a#########################################################//a## 2D Acoustic原创 2018-02-01 14:10:07 · 1417 阅读 · 5 评论 -
基于CUDA的三维VTI介质逆时偏移与ADCIGs提取
“CUDA”、“C语言”、“nvcc”、“VTI介质”、“RTM”、“中间激发两边接收”、“全孔径接收”、“照明”、“拉普拉斯滤波”、“角度域共成像点道集”、“Poynting矢量”、“三维”;在此做个备份!直接上代码吧!//a#########################################################//a##原创 2018-02-01 14:14:40 · 954 阅读 · 0 评论 -
OpenMP变量的私有与共享
#include #include #ifdef _OPENMP#include #endifint gval = 8;//gval是共享的void funcb(int *x, int *y, int z)//z是线程私有,z-i{ static int sv;//静态变量,共享的,在内存中只有一份,所以会引起冲突 int u;//自变量,线程私有的 u = (*y)*gv原创 2017-11-30 22:18:23 · 4123 阅读 · 4 评论 -
版本为2.5的OpenMP规范中的编译制导指令汇总
OpenMP的所有编译制导指令是以#pragma omp开始#pragmaomp指令 [子句[,子句]„] 版本为2.5的OpenMP规范中的指令有以下这些:parallel:用在一个结构块之前,表示这段代码将被多个线程并行执行; for:用于for循环语句之前,表示将循环计算任务分配到多个线程中并行执行,以实现任务分担,必须由编程人员自己保证每次循环之间无数据相关性;para原创 2017-12-01 17:22:36 · 956 阅读 · 1 评论 -
版本为2.5的OpenMP的所有API函数
函数名作用omp_in_parallel判断当前是否在并行域中omp_get_thread_num返回线程号omp_set_num_threads设置后续并行域中的线程个数omp_get_num_threads返回当前并行区域中的线程数omp_get_max_threads获取并行域可用的最大线程数目o原创 2017-12-01 17:31:48 · 600 阅读 · 1 评论