1 OpenCL Work-Item Private Memory Workgroup Local Memory Compute Device Global/Constant Memory Host Host Memory OpenCL CUDA CUDA Compute Unit MP Proce
|
|
|
- とき つちた
- 7 years ago
- Views:
Transcription
1 GPGPU (VI) GPGPU 1 GPGPU CUDA CUDA GPGPU GPGPU CUDA GPGPU ( ) CUDA GPGPU 2 OpenCL OpenCL GPGPU Apple Khronos Group OpenCL Working Group [1] CUDA GPU NVIDIA GPU *1 OpenCL NVIDIA AMD GPU CPU DSP(Digital Signal Processor) NVIDIA GPU AMD GPU OpenCL OpenCL OpenCL CUDA CUDA OpenCL 2.1 OpenCL OpenCL 1 OpenCL Host( CPU ) ( )Compute Device( GPU ) Compute Device ( )Compute Unit( ) Compute Unit ( )Processing Element( ) OpenCL 2 OpenCL CUDA MP Block SP(CUDA Core) Thread Processing Element Work-Item( ) Compute Unit Workgroup( ) OpenCL *1 1
2 1 OpenCL Work-Item Private Memory Workgroup Local Memory Compute Device Global/Constant Memory Host Host Memory OpenCL CUDA CUDA Compute Unit MP Processing Element SP Private Memory Register Local Memory Shared Memory Global/Constant Memory Global Memory Host Memory Host Memory CUDA OpenCL OpenCL CUDA OpenCL GPU ( ) OpenCL 0 OpenCL Embedded Profile 2.2 OpenCL OpenCL OpenCL C/C++ OpenCL API OpenCL ( ) Compute Unit Processing Element (API) 2
3 2 OpenCL OpenCL C/C++ C/C++ GPU( ) kernel Global Memory global OpenCL CUDA OpenCL ( ) CUDA OpenCL OpenCL ( ) 3
4 2.3 OpenCL OpenCL CentOS 5.5 x86 64 CUDA 3.2RC TeslaC2050 PC AMD GPU ( ) 1 OpenCL ( ) (CPU ) : GPU : : : CPU/GPU CPU GPU : GPU GPU : GPU CPU : : 1 arraytest.cpp 1 #include <oclutils.h> 2 3 #define DATA LENGTH 16 4 cl context cxgpucontext; 5 cl kernel kernel; 6 cl command queue commandqueue; 7 8 #define CHK DO(name,o) cierrnum=o;if(cierrnum!=cl SUCCESS){printf(name);printf(" failed\n" );return( 1);} 9 #define CHK ERR(name) if(cierrnum!=cl SUCCESS){printf(name);printf(" failed\n");return ( 1);} int main(int argc, char argv){ 12 cl platform id cpplatform = NULL; 13 cl uint cidevicecount = 0; 14 cl device id cddevices = NULL; 15 cl int cierrnum = CL SUCCESS; 16 // get platform 17 CHK DO("oclGetPlatformID", oclgetplatformid(&cpplatform)); 18 // get devices 19 CHK DO("clGetDeviceIDs1", clgetdeviceids(cpplatform, CL DEVICE TYPE GPU, 0, NULL, & cidevicecount)); 20 cddevices = (cl device id )malloc(cidevicecount sizeof(cl device id)); 21 CHK DO("clGetDeviceIDs2", clgetdeviceids(cpplatform, CL DEVICE TYPE GPU, cidevicecount, cddevices, NULL)); 22 // get context 23 cxgpucontext = clcreatecontext(0, cidevicecount, cddevices, NULL, NULL, &cierrnum); 24 CHK ERR("clCreateContext"); 25 // create command queue 26 cl device id device = oclgetdev(cxgpucontext, 0); 27 commandqueue = clcreatecommandqueue(cxgpucontext, device, CL QUEUE PROFILING ENABLE, &cierrnum); 28 CHK ERR("clCreateCommandQueue"); 4
5 29 // program setup 30 size t program length; 31 const char source path = "gpu.cl"; 32 char source = oclloadprogsource(source path, "", &program length); 33 if(!source){printf("oclloadprogsource failed(%s)\n", source path);return 2000;} 34 // create the program 35 cl program cpprogram = clcreateprogramwithsource(cxgpucontext, 1, (const char )&source, & program length, &cierrnum); 36 CHK ERR("clCreateProgramWithSource"); 37 free(source); 38 // build the program 39 CHK DO("clBuildProgram", clbuildprogram(cpprogram, 0, NULL, "-cl-fast-relaxed-math", NULL, NULL)); 40 // Create Kernel 41 kernel = clcreatekernel(cpprogram, "arraytest", &cierrnum); 42 CHK ERR("clCreateKernel"); 43 // setup data 44 cl mem d A; 45 cl mem d R; 46 float h A data = (float )malloc(sizeof(float) DATA LENGTH); 47 for(int i=0; i<data LENGTH; i++)h A data[i] = (float)(i+1); 48 float h R data = (float )malloc(sizeof(float) DATA LENGTH); 49 d A = clcreatebuffer(cxgpucontext, CL MEM READ ONLY CL MEM COPY HOST PTR, sizeof( float) DATA LENGTH, h A data, NULL); 50 d R = clcreatebuffer(cxgpucontext, CL MEM WRITE ONLY, sizeof(float) DATA LENGTH, NULL, NULL); 51 float value = 2.0f; 52 // set args 53 clsetkernelarg(kernel, 0, sizeof(cl mem), (void )&d R); 54 clsetkernelarg(kernel, 1, sizeof(cl mem), (void )&d A); 55 clsetkernelarg(kernel, 2, sizeof(cl float), (void )&value); 56 // run kernel 57 cl event GPUExecution; 58 size t localworksize[] = {4}; 59 size t globalworksize[] = {DATA LENGTH}; 60 clenqueuendrangekernel(commandqueue, kernel, 1, 0, globalworksize, localworksize, 0, NULL, & GPUExecution); 61 clflush(commandqueue); 62 // sync 63 clfinish(commandqueue); 64 // bloking readback 65 clenqueuereadbuffer(commandqueue, d R, CL TRUE, 0, sizeof(float) DATA LENGTH, h R data, 0, NULL, NULL); 66 // check result 67 printf("before: "); for(int i=0; i<data LENGTH; i++){printf(" %.2f", h A data[i]);}printf("\n"); 68 printf("after : "); for(int i=0; i<data LENGTH; i++){printf(" %.2f", h R data[i]);}printf("\n"); 69 // release mem and event 70 clreleasememobject(d A); 71 clreleasememobject(d R); 72 clreleaseevent(gpuexecution); 73 // cleanup 74 cierrnum = clreleasekernel(kernel); 75 cierrnum = clreleasecommandqueue(commandqueue); 76 cierrnum = clreleaseprogram(cpprogram); 77 cierrnum = clreleasecontext(cxgpucontext); 78 CHK ERR("release"); 79 free(h A data); 80 free(h R data); 81 return 0; 82 } GPU PlatformID Device DeviceID Context 2 GPU 5
6 2 arraytest.cpp( ) 1 // get context create command queue 2 size t ndevicebytes; 3 CHK DO("clGetContextInfo", clgetcontextinfo(cxgpucontext, CL CONTEXT DEVICES, 0, NULL, &ndevicebytes)); 4 cidevicecount = (cl uint)ndevicebytes/sizeof(cl device id); 5 if(cidevicecount == 0){printf("no devices (return code %i)\n", cierrnum);return 1;} 6 // check all devices (get device and print the device name) 7 for(unsigned int i = 0; i < cidevicecount; ++i){ 8 // device GPU 9 cl device id device = oclgetdev(cxgpucontext, i); 10 printf("device %d: ", i); 11 oclprintdevname(logboth, device); // GPU 12 printf("\n"); 13 } clsetkernelarg API GPU API ( ) clenqueuendrangekernel 5 6 (localworksize globalworksize) CUDA Thread Block Thread Block OpenCL Work-Item CUDA Thread Block Thread CUDA ( ) WorkSize 2 CUDA (CUDA C) CUDA C CUDA Driver API CUDA CUDA OpenCL API OpenCL CUDA CUDA Stream( ) Stream GPU CPU-GPU Stream CUDA C 6
7 1. ( ) oclloadprogsource 2. clcreateprogramwithsource 3. clbuildprogram 4. clcreatekernel 3 CUDA ( ) Work-Item ID CUDA ID get global id Work-Item 1 3 gpu.cl 1 #define DATA LENGTH 16 2 kernel void arraytest( global float R, global float A, float value){ 3 int i; 4 i = get global id(0); 5 R[i] = A[i] value; 6 } CUDA CUDA CUDA CUDA ( ) OpenCL OpenCL CUDA nvcc OpenCL 3 gcc(g++) OpenCL OpenCL CUDA CUDA(CUDA C) CUDA Driver API CUDA C OpenGL GLUT ( ) OpenCL 7
8 $ ls arraytest.cpp gpu.cl $ g++ -O3 -m64 -o arraytest arraytest.cpp -lopencl \ -I/path_to_cudasdk_3.1/OpenCL/common/inc -I/path_to_cudasdk_3.1/shared/inc \ -L/path_to_cudasdk_3.1/OpenCL/common/lib -L/path_to_cudasdk_3.1/shared/lib \ -loclutil_x86_64 -lshrutil_x86_64 $ ls arraytest arraytest.cpp gpu.cl $./arraytest before: ( ) after : ( ) 3 OpenCL 3 GPGPU 3.1 GPGPU GPGPU C/C++ pthread OpenMP MPI GPGPU GPGPU OpenMP CUDA OMPCUDA[3] OMPCUDA OpenMP parallel for (for ) for GPU GPU CPU-GPU OpenMP OMPCUDA GPU SP ( 4) OMPCUDA OpenMP OMNI OpenMP compiler( OMNI)[2] OMNI OMPCUDA 5 OMNI OMPCUDA OMPCUDA CUDA GPU OMPCUDA OpenMP C/C++ Fortran OMPCUDA 8
9 4 OpenMP OMPCUDA 5 OMNI OMPCUDA 9
10 OMPCUDA Lee [5] OpenMP CUDA OpenMP GPGPU PGI [4] CAPS HMPP[6] 3.2 GPGPU CUDA OpenCL C/C++ C/C++ HPC C/C++ Fortran Java, Perl, Python, Ruby,.NET ( ) CUDA OpenCL GPU PyCUDA[7], PyOpenCL[8] PyCUDA PyOpenCL Python CUDA OpenCL Python CUDA OpenCL CPU-GPU GPU Python C++ Ruby-OpenCL[9] Ruby-OpenCL PyOpenCL Ruby OpenCL GPU Python Ruby JCuda[10] JCuda Java CUDA Python/Ruby GPU (PTX) CUDA (CUBLAS, CUFFT ) API CUDA Fortran[11] CUDA Fortran Fortran CUDA PGI CUDA Fortran C/C++ Fortran ( ) CUDA C Fortran CUDA OpenCL GPU 10
11 GPU GPU 3.3 GPGPU / GPU GPU CUDA GPU GPU ( / ) CUDA 2005 GPU BrookGPU[12] RapidMind[14] BrookGPU Stanford University 6 BrookGPU (kfunc) (streamread,streawrite) 2 GPU BrookGPU DirectX, OpenGL, CPU, CTM(Close to the Metal AMD ) AMD GPU BrookGPU Brook+[13] RapidMind University of Waterloo Sh[15] RAPIDMIND 7 RapidMind RapidMind BrookGPU RapidMind PetaFLOPS ExaFLOPS GPGPU ( ) CUDA GPGPU CUDA 11
12 // kernel void kfunc (float x<>, float y<>, out float z<>) { z = x + y; } int main() { float a<100>; float b<100>; float c <100>; // streamread(a, data1); streamread(b, data2); // kfunc(a, b); // streamwrite(c, result); return 0; } int main() { // Program kfunc=begin { In<Value3f>x, y; Out<Value3f>z; z = x + y; } END; // Array<1, Value3f> a(512); Array<1, Value3f> b(512); Array<1, Value3f> c(512); // c = kfunc(a, b); return 0; } 6 BrookGPU 7 RapidMind OpenCL NVIDIA GPU GPU C/C++ GPGPU GPGPU GPGPU Tianhe-1A ( TOP500 RadeonHD 5 ) 14,336 CPU 7,168 TeslaM2050 LINPACK 2PFLOPS TOP500( ) TSUBAME 4,224 TeslaM2050 TSUBAME 2.0 TOP500 Green500 GPGPU GPU GPU GPU GPU GPU GPGPU [1] OpenCL - The open standard for parallel programming of heterogeneous systems, http: // [2] M.Sato, S.Satoh, K.Kusano, and Y.Tanaka. Design of OpenMP Compiler for an SMP Cluster. 12
13 In EWOMP 99, pp , [3],,. OMPCUDA : GPU OpenMP. HPCS , pp , [4] PGI. PGI Accelerator Compilers, [5] Seyong Lee, Seung-Jai Min, Rudolf Eigenmann. OpenMP to GPGPU: a compiler framework for automatic translation and optimization. Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming, pp , [6] CAPS. HMPP Workbench, 49\&p\ p=36 [7] PyCUDA, [8] PyOpenCL, [9] Ruby-OpenCL, [10] jcuda, [11] CUDA Fortran, [12] Ian Buck, Tim Foley, Daniel Horn, Jeremy Sugerman, Kayvon Fatahalian, Mike Houston, and Pat Hanrahan. Brook for GPUs: Stream Computing on Graphics Hardware. SIGGRAPH 2004, [13] AMD. Brook+. SC07 BOF Session presentation, November [14] Michael D. McCool. Data-Parallel Programming on the Cell BE and the GPU using the RapidMind Development Platform. In GSPx Multicore Applications Conference, [15] Michael McCool and Stefanus Du Toit. Metaprogramming GPUs with Sh. A K Peters Ltd,
( CUDA CUDA CUDA CUDA ( NVIDIA CUDA I
GPGPU (II) GPGPU CUDA 1 GPGPU CUDA(CUDA Unified Device Architecture) CUDA NVIDIA GPU *1 C/C++ (nvcc) CUDA NVIDIA GPU GPU CUDA CUDA 1 CUDA CUDA 2 CUDA NVIDIA GPU PC Windows Linux MaxOSX CUDA GPU CUDA NVIDIA
! 行行 CPUDSP PPESPECell/B.E. CPUGPU 行行 SIMD [SSE, AltiVec] 用 HPC CPUDSP PPESPE (Cell/B.E.) SPE CPUGPU GPU CPU DSP DSP PPE SPE SPE CPU DSP SPE 2
! OpenCL [Open Computing Language] 言 [OpenCL C 言 ] CPU, GPU, Cell/B.E.,DSP 言 行行 [OpenCL Runtime] OpenCL C 言 API Khronos OpenCL Working Group AMD Broadcom Blizzard Apple ARM Codeplay Electronic Arts Freescale
07-二村幸孝・出口大輔.indd
GPU Graphics Processing Units HPC High Performance Computing GPU GPGPU General-Purpose computation on GPU CPU GPU GPU *1 Intel Quad-Core Xeon E5472 3.0 GHz 2 6 MB L2 cache 1600 MHz FSB 80 GFlops 1 nvidia
1 GPU GPGPU GPU CPU 2 GPU 2007 NVIDIA GPGPU CUDA[3] GPGPU CUDA GPGPU CUDA GPGPU GPU GPU GPU Graphics Processing Unit LSI LSI CPU ( ) DRAM GPU LSI GPU
GPGPU (I) GPU GPGPU 1 GPU(Graphics Processing Unit) GPU GPGPU(General-Purpose computing on GPUs) GPU GPGPU GPU ( PC ) PC PC GPU PC PC GPU GPU 2008 TSUBAME NVIDIA GPU(Tesla S1070) TOP500 29 [1] 2009 AMD
on PS3 Linux Core 2 Quad (GHz) SMs 7 SPEs 1 OS 4 1 Hz 1 (GFLOPS) SM PPE SPE bit
vs. 1 1 1 GPU TFLOPS GPU GPU GPGPU GPGPU 1 SIMD MFLOPS HPC GPU FFTZIP HPC Challenge RandomAccess Levenshtein 6 vs. Ryōhei NISHIMURA, 1 Hidetsugu IRIE 1 and Kei HIRAKI 1 Recently, on the one hand, performance
main.dvi
PC 1 1 [1][2] [3][4] ( ) GPU(Graphics Processing Unit) GPU PC GPU PC ( 2 GPU ) GPU Harris Corner Detector[5] CPU ( ) ( ) CPU GPU 2 3 GPU 4 5 6 7 1 [email protected] 45 2 ( ) CPU ( ) ( ) () 2.1
GPGPU
GPGPU 2013 1008 2015 1 23 Abstract In recent years, with the advance of microscope technology, the alive cells have been able to observe. On the other hand, from the standpoint of image processing, the
TSUBAME2.0 における GPU の 活用方法 東京工業大学学術国際情報センター丸山直也第 10 回 GPU コンピューティング講習会 2011 年 9 月 28 日
TSUBAME2.0 における GPU の 活用方法 東京工業大学学術国際情報センター丸山直也第 10 回 GPU コンピューティング講習会 2011 年 9 月 28 日 目次 1. TSUBAMEのGPU 環境 2. プログラム作成 3. プログラム実行 4. 性能解析 デバッグ サンプルコードは /work0/gsic/seminars/gpu- 2011-09- 28 からコピー可能です 1.
untitled
A = QΛQ T A n n Λ Q A = XΛX 1 A n n Λ X GPGPU A 3 T Q T AQ = T (Q: ) T u i = λ i u i T {λ i } {u i } QR MR 3 v i = Q u i A {v i } A n = 9000 Quad Core Xeon 2 LAPACK (4/3) n 3 O(n 2 ) O(n 3 ) A {v i }
Nios® II HAL API を使用したソフトウェア・サンプル集 「Modular Scatter-Gather DMA Core」
ALTIMA Company, MACNICA, Inc Nios II HAL API Modular Scatter-Gather DMA Core Ver.17.1 2018 8 Rev.1 Nios II HAL API Modular Scatter-Gather DMA Core...3...3...4... 4... 5 3-2-1. msgdma... 6 3-2-2. On-Chip
Microsoft PowerPoint - GPU_computing_2013_01.pptx
GPU コンピューティン No.1 導入 東京工業大学 学術国際情報センター 青木尊之 1 GPU とは 2 GPGPU (General-purpose computing on graphics processing units) GPU を画像処理以外の一般的計算に使う GPU の魅力 高性能 : ハイエンド GPU はピーク 4 TFLOPS 超 手軽さ : 普通の PC にも装着できる 低価格
GPU GPU CPU CPU CPU GPU GPU N N CPU ( ) 1 GPU CPU GPU 2D 3D CPU GPU GPU GPGPU GPGPU 2 nvidia GPU CUDA 3 GPU 3.1 GPU Core 1
GPU 4 2010 8 28 1 GPU CPU CPU CPU GPU GPU N N CPU ( ) 1 GPU CPU GPU 2D 3D CPU GPU GPU GPGPU GPGPU 2 nvidia GPU CUDA 3 GPU 3.1 GPU Core 1 Register & Shared Memory ( ) CPU CPU(Intel Core i7 965) GPU(Tesla
IPSJ SIG Technical Report Vol.2013-ARC-203 No /2/1 SMYLE OpenCL (NEDO) IT FPGA SMYLEref SMYLE OpenCL SMYLE OpenCL FPGA 1
SMYLE OpenCL 128 1 1 1 1 1 2 2 3 3 3 (NEDO) IT FPGA SMYLEref SMYLE OpenCL SMYLE OpenCL FPGA 128 SMYLEref SMYLE OpenCL SMYLE OpenCL Implementation and Evaluations on 128 Cores Takuji Hieda 1 Noriko Etani
Vol.214-HPC-145 No /7/3 C #pragma acc directive-name [clause [[,] clause] ] new-line structured block Fortran!$acc directive-name [clause [[,] c
Vol.214-HPC-145 No.45 214/7/3 OpenACC 1 3,1,2 1,2 GPU CUDA OpenCL OpenACC OpenACC High-level OpenACC CPU Intex Xeon Phi K2X GPU Intel Xeon Phi 27% K2X GPU 24% 1. TSUBAME2.5 CPU GPU CUDA OpenCL CPU OpenMP
Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments
計算機アーキテクチャ第 11 回 マルチプロセッサ 本資料は授業用です 無断で転載することを禁じます 名古屋大学 大学院情報科学研究科 准教授加藤真平 デスクトップ ジョブレベル並列性 スーパーコンピュータ 並列処理プログラム プログラムの並列化 for (i = 0; i < N; i++) { x[i] = a[i] + b[i]; } プログラムの並列化 x[0] = a[0] + b[0];
XcalableMP入門
XcalableMP 1 HPC-Phys@, 2018 8 22 XcalableMP XMP XMP Lattice QCD!2 XMP MPI MPI!3 XMP 1/2 PCXMP MPI Fortran CCoarray C++ MPIMPI XMP OpenMP http://xcalablemp.org!4 XMP 2/2 SPMD (Single Program Multiple Data)
iphone GPGPU GPU OpenCL Mac OS X Snow LeopardOpenCL iphone OpenCL OpenCL NVIDIA GPU CUDA GPU GPU GPU 15 GPU GPU CPU GPU iii OpenMP MPI CPU OpenCL CUDA OpenCL CPU OpenCL GPU NVIDIA Fermi GPU Fermi GPU GPU
GPUコンピューティング講習会パート1
GPU コンピューティング (CUDA) 講習会 GPU と GPU を用いた計算の概要 丸山直也 スケジュール 13:20-13:50 GPU を用いた計算の概要 担当丸山 13:50-14:30 GPU コンピューティングによる HPC アプリケーションの高速化の事例紹介 担当青木 14:30-14:40 休憩 14:40-17:00 CUDA プログラミングの基礎 担当丸山 TSUBAME の
WebGL OpenGL GLSL Kageyama (Kobe Univ.) Visualization / 57
WebGL 2014.04.15 X021 2014 3 1F Kageyama (Kobe Univ.) Visualization 2014.04.15 1 / 57 WebGL OpenGL GLSL Kageyama (Kobe Univ.) Visualization 2014.04.15 2 / 57 WebGL Kageyama (Kobe Univ.) Visualization 2014.04.15
HBase Phoenix API Mars GPU MapReduce GPU Hadoop Hadoop Hadoop MapReduce : (1) MapReduce (2)JobTracker 1 Hadoop CPU GPU Fig. 1 The overview of CPU-GPU
GPU MapReduce 1 1 1, 2, 3 MapReduce GPGPU GPU GPU MapReduce CPU GPU GPU CPU GPU CPU GPU Map K-Means CPU 2GPU CPU 1.02-1.93 Improving MapReduce Task Scheduling for CPU-GPU Heterogeneous Environments Koichi
OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë
2012 5 24 scalar Open MP Hello World Do (omp do) (omp workshare) (shared, private) π (reduction) PU PU PU 2 16 OpenMP FORTRAN/C/C++ MPI OpenMP 1997 FORTRAN Ver. 1.0 API 1998 C/C++ Ver. 1.0 API 2000 FORTRAN
OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë
2011 5 26 scalar Open MP Hello World Do (omp do) (omp workshare) (shared, private) π (reduction) scalar magny-cours, 48 scalar scalar 1 % scp. ssh / authorized keys 133. 30. 112. 246 2 48 % ssh 133.30.112.246
GPU n Graphics Processing Unit CG CAD
GPU 2016/06/27 第 20 回 GPU コンピューティング講習会 ( 東京工業大学 ) 1 GPU n Graphics Processing Unit CG CAD www.nvidia.co.jp www.autodesk.co.jp www.pixar.com GPU n GPU ü n NVIDIA CUDA ü NVIDIA GPU ü OS Linux, Windows, Mac
ストリームを用いたコンカレントカーネルプログラミングと最適化 エヌビディアジャパン CUDAエンジニア森野慎也 GTC Japan 2014
ストリームを用いたコンカレントカーネルプログラミングと最適化 エヌビディアジャパン CUDAエンジニア森野慎也 GTC Japan 2014 コンカレントな処理の実行 システム内部の複数の処理を 平行に実行する CPU GPU メモリ転送 カーネル実行 複数のカーネル間 ストリーム GPU 上の処理キュー カーネル実行 メモリ転送の並列性 実行順序 DEFAULT STREAM Stream : GPU
1 4 1.1........................................... 4 1.2.................................. 4 1.3................................... 4 2 5 2.1 GPU.....
CPU GPU N Q07-065 2011 2 17 1 1 4 1.1........................................... 4 1.2.................................. 4 1.3................................... 4 2 5 2.1 GPU...........................................
01_OpenMP_osx.indd
OpenMP* / 1 1... 2 2... 3 3... 5 4... 7 5... 9 5.1... 9 5.2 OpenMP* API... 13 6... 17 7... 19 / 4 1 2 C/C++ OpenMP* 3 Fortran OpenMP* 4 PC 1 1 9.0 Linux* Windows* Xeon Itanium OS 1 2 2 WEB OS OS OS 1 OS
strtok-count.eps
IoT FPGA 2016/12/1 IoT FPGA 200MHz 32 ASCII PCI Express FPGA OpenCL (Volvox) Volvox CPU 10 1 IoT (Internet of Things) 2020 208 [1] IoT IoT HTTP JSON ( Python Ruby) IoT IoT IoT (Hadoop [2] ) AI (Artificial
HP High Performance Computing(HPC)
ACCELERATE HP High Performance Computing HPC HPC HPC HPC HPC 1000 HPHPC HPC HP HPC HPC HPC HP HPCHP HP HPC 1 HPC HP 2 HPC HPC HP ITIDC HP HPC 1HPC HPC No.1 HPC TOP500 2010 11 HP 159 32% HP HPCHP 2010 Q1-Q4
MATLAB® における並列・分散コンピューティング ~ Parallel Computing Toolbox™ & MATLAB Distributed Computing Server™ ~
MATLAB における並列 分散コンピューティング ~ Parallel Computing Toolbox & MATLAB Distributed Computing Server ~ MathWorks Japan Application Engineering Group Takashi Yoshida 2016 The MathWorks, Inc. 1 System Configuration
GPU チュートリアル :OpenACC 篇 Himeno benchmark を例題として 高エネルギー加速器研究機構 (KEK) 松古栄夫 (Hideo Matsufuru) 1 December 2018 HPC-Phys 理化学研究所 共通コードプロジェクト
GPU チュートリアル :OpenACC 篇 Himeno benchmark を例題として 高エネルギー加速器研究機構 (KEK) 松古栄夫 (Hideo Matsufuru) 1 December 2018 HPC-Phys 勉強会 @ 理化学研究所 共通コードプロジェクト Contents Hands On 環境について Introduction to GPU computing Introduction
スパコンに通じる並列プログラミングの基礎
2016.06.06 2016.06.06 1 / 60 2016.06.06 2 / 60 Windows, Mac Unix 0444-J 2016.06.06 3 / 60 Part I Unix GUI CUI: Unix, Windows, Mac OS Part II 0444-J 2016.06.06 4 / 60 ( : ) 6 6 ( ) 6 10 6 16 SX-ACE 6 17
23 Fig. 2: hwmodulev2 3. Reconfigurable HPC 3.1 hw/sw hw/sw hw/sw FPGA PC FPGA PC FPGA HPC FPGA FPGA hw/sw hw/sw hw- Module FPGA hwmodule hw/sw FPGA h
23 FPGA CUDA Performance Comparison of FPGA Array with CUDA on Poisson Equation ([email protected]), ([email protected]), ([email protected]), ([email protected]),
netcdf
1. Anetcdf.rb netcdf C ruby open new create NetCDF C filename String NetCDF NetCDF_open mode r r, w share false true or false open open netcdf filename String NetCDF NetCDF_create noclobber false true
programmingII2019-v01
II 2019 2Q A 6/11 6/18 6/25 7/2 7/9 7/16 7/23 B 6/12 6/19 6/24 7/3 7/10 7/17 7/24 x = 0 dv(t) dt = g Z t2 t 1 dv(t) dt dt = Z t2 t 1 gdt g v(t 2 ) = v(t 1 ) + g(t 2 t 1 ) v v(t) x g(t 2 t 1 ) t 1 t 2
/ SCHEDULE /06/07(Tue) / Basic of Programming /06/09(Thu) / Fundamental structures /06/14(Tue) / Memory Management /06/1
I117 II I117 PROGRAMMING PRACTICE II 2 MEMORY MANAGEMENT 2 Research Center for Advanced Computing Infrastructure (RCACI) / Yasuhiro Ohara [email protected] / SCHEDULE 1. 2011/06/07(Tue) / Basic of Programming
211 年ハイパフォーマンスコンピューティングと計算科学シンポジウム Computing Symposium 211 HPCS /1/18 a a 1 a 2 a 3 a a GPU Graphics Processing Unit GPU CPU GPU GPGPU G
211 年ハイパフォーマンスコンピューティングと計算科学シンポジウム Computing Symposium 211 HPCS211 211/1/18 GPU 4 8 BLAS 4 8 BLAS Basic Linear Algebra Subprograms GPU Graphics Processing Unit 4 8 double 2 4 double-double DD 4 4 8 quad-double
DO 時間積分 START 反変速度の計算 contravariant_velocity 移流項の計算 advection_adams_bashforth_2nd DO implicit loop( 陰解法 ) 速度勾配, 温度勾配の計算 gradient_cell_center_surface 速
1 1, 2 1, 2 3 2, 3 4 GP LES ASUCA LES NVIDIA CUDA LES 1. Graphics Processing Unit GP General-Purpose SIMT Single Instruction Multiple Threads 1 2 3 4 1),2) LES Large Eddy Simulation 3) ASUCA 4) LES LES
r07.dvi
19 7 ( ) 2019.4.20 1 1.1 (data structure ( (dynamic data structure 1 malloc C free C (garbage collection GC C GC(conservative GC 2 1.2 data next p 3 5 7 9 p 3 5 7 9 p 3 5 7 9 1 1: (single linked list 1
ohp07.dvi
19 7 ( ) 2019.4.20 1 (data structure) ( ) (dynamic data structure) 1 malloc C free 1 (static data structure) 2 (2) C (garbage collection GC) C GC(conservative GC) 2 2 conservative GC 3 data next p 3 5
スパコンに通じる並列プログラミングの基礎
2018.09.10 [email protected] ( ) 2018.09.10 1 / 59 [email protected] ( ) 2018.09.10 2 / 59 Windows, Mac Unix 0444-J [email protected] ( ) 2018.09.10 3 / 59 Part I Unix GUI CUI:
AMD/ATI Radeon HD 5870 GPU DEGIMA LINPACK HD 5870 GPU DEGIMA LINPACK GFlops/Watt GFlops/Watt Abstract GPU Computing has lately attracted
DEGIMA LINPACK Energy Performance for LINPACK Benchmark on DEGIMA 1 AMD/ATI Radeon HD 5870 GPU DEGIMA LINPACK HD 5870 GPU DEGIMA LINPACK 1.4698 GFlops/Watt 1.9658 GFlops/Watt Abstract GPU Computing has
WinDriver PCI Quick Start Guide
WinDriver PCI/PCI Express/PCMCIA 5! WinDriver (1) DriverWizard (2) DriverWizard WinDriver (1) Windows 98/Me/2000/XP/Server 2003/Vista Windows CE.NET Windows Embedded CE v6.00 Windows Mobile 5.0/6.0 Linux
IPSJ SIG Technical Report Vol.2013-HPC-138 No /2/21 GPU CRS 1,a) 2,b) SpMV GPU CRS SpMV GPU NVIDIA Kepler CUDA5.0 Fermi GPU Kepler Kepler Tesla
GPU CRS 1,a),b) SpMV GPU CRS SpMV GPU NVIDIA Kepler CUDA5.0 Fermi GPU Kepler Kepler Tesla K0 CUDA5.0 cusparse CRS SpMV 00 1.86 177 1. SpMV SpMV CRS Compressed Row Storage *1 SpMV GPU GPU NVIDIA Kepler
スパコンに通じる並列プログラミングの基礎
2018.06.04 2018.06.04 1 / 62 2018.06.04 2 / 62 Windows, Mac Unix 0444-J 2018.06.04 3 / 62 Part I Unix GUI CUI: Unix, Windows, Mac OS Part II 2018.06.04 4 / 62 0444-J ( : ) 6 4 ( ) 6 5 * 6 19 SX-ACE * 6
熊本大学学術リポジトリ Kumamoto University Repositor Title GPGPU による高速演算について Author(s) 榎本, 昌一 Citation Issue date Type URL Presentation
熊本大学学術リポジトリ Kumamoto University Repositor Title GPGPU による高速演算について Author(s) 榎本, 昌一 Citation Issue date 2011-03-17 Type URL Presentation http://hdl.handle.net/2298/23539 Right GPGPU による高速演算について 榎本昌一 東京大学大学院工学系研究科システム創成学専攻
BASIC / / BA- SIC Web 1/10 1/10 / / JavaScript
BASIC / / BA- SIC Web 1/10 1/10 // JavaScript MIT Processing line(10,10,100,100); 1 BASIC / Phidgets 1 GAINER 2 USB / Phidgets USB 1: 1 http://www.phidgets.com/ 2 http://gainer.cc/ / / BGM Phidgets University
WinHPC ppt
MPI.NET C# 2 2009 1 20 MPI.NET MPI.NET C# MPI.NET C# MPI MPI.NET 1 1 MPI.NET C# Hello World MPI.NET.NET Framework.NET C# API C# Microsoft.NET java.net (Visual Basic.NET Visual C++) C# class Helloworld
第3回戦略シンポジウム緑川公開用
2010 5 15 - - (SDSM) SMS MpC DLM Top500 Top 500 list of Supercomputers (http://www.top500.org) Top 500 list of Supercomputers (http://www.top500.org) 1998 11 SMP Symmetric Multiprocessor CPU CPU CPU CPU
double float
2015 3 13 1 2 2 3 2.1.......................... 3 2.2............................. 3 3 4 3.1............................... 4 3.2 double float......................... 5 3.3 main.......................
3次元画像計測分野でのGPUを用いた高速化事例
3 次元画像計測分野での GPU を 用いた高速化事例 関口尚大, 三浦衛, 高橋徹, 青木孝文 東杜シーテック 東北大学大学院情報科学研究科 1 画像処理 GPGPU 関連事業製品組込みシステムソリューションカーナビ カーオー CUDA & OpenCL 最新画像処理技術ディオ 車載電装分ソリューション 画像処理の研究開発と 組込技術 野のソフトウェア開発その実用化 MATLAB/Simlinkを組み合わせで新たな価値の創造を目指しています
大統一Debian勉強会 gdb+python拡張を使ったデバッグ手法
Debian 2013 gdb+python [email protected] 2013 6 29 Level Debian Up Debian Debian debian sid unstable Debian debian sid unstable *-dbg Debian debian sid unstable *-dbg gdb Debian debian sid unstable *-dbg
連載講座 : 高生産並列言語を使いこなす (4) ゲーム木探索の並列化 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 準備 問題の定義 αβ 法 16 2 αβ 法の並列化 概要 Young Brothers Wa
連載講座 : 高生産並列言語を使いこなす (4) ゲーム木探索の並列化 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 準備 16 1.1 問題の定義 16 1.2 αβ 法 16 2 αβ 法の並列化 17 2.1 概要 17 2.2 Young Brothers Wait Concept 17 2.3 段数による逐次化 18 2.4 適応的な待機 18 2. 強制終了
C
C 1 2 1.1........................... 2 1.2........................ 2 1.3 make................................................ 3 1.4....................................... 5 1.4.1 strip................................................
GPUコンピューティング講習会パート1
GPU コンピューティング (CUDA) 講習会 GPU と GPU を用いた計算の概要 丸山直也 スケジュール 13:20-13:50 GPU を用いた計算の概要 担当丸山 13:50-14:30 GPU コンピューティングによる HPC アプリケーションの高速化の事例紹介 担当青木 14:30-14:40 休憩 14:40-17:00 CUDA プログラミングの基礎 担当丸山 TSUBAME の
ex01.dvi
,. 0. 0.0. C () /******************************* * $Id: ex_0_0.c,v.2 2006-04-0 3:37:00+09 naito Exp $ * * 0. 0.0 *******************************/ #include int main(int argc, char **argv) double
インテル(R) Visual Fortran Composer XE 2013 Windows版 入門ガイド
Visual Fortran Composer XE 2013 Windows* エクセルソフト株式会社 www.xlsoft.com Rev. 1.1 (2012/12/10) Copyright 1998-2013 XLsoft Corporation. All Rights Reserved. 1 / 53 ... 3... 4... 4... 5 Visual Studio... 9...
IPSJ SIG Technical Report Vol.2013-ARC-206 No /8/1 Android Dominic Hillenbrand ODROID-X2 GPIO Android OSCAR WFI 500[us] GPIO GP
Android 1 1 1 1 1 Dominic Hillenbrand 1 1 1 ODROID-X2 GPIO Android OSCAR WFI 500[us] GPIO GPIO API GPIO API GPIO MPEG2 Optical Flow MPEG2 1PE 0.97[W] 0.63[W] 2PE 1.88[w] 0.46[W] 3PE 2.79[W] 0.37[W] Optical
SystemC 2.0を用いた簡易CPUバスモデルの設計
SystemC 2.0 CPU CPU CTD&SW CT-PF 2002/1/23 1 CPU BCA UTF GenericCPU IO (sc_main) 2002/1/23 2 CPU CPU CQ 1997 11 Page 207 4 Perl Verilog-HDL CPU / Verilog-HDL SystemC 2.0 (asm) ROM (test.hex) 2002/1/23
I. Opal SSC 1. Opal SSC 2. Opal Storage 3. Opal Storage MBR Shadowing 6. SP II. TCG Opal SSC HDD 9. Opal SSC HDD *1. TCG: Trusted Computin
TCG Opal Yoshiju Watanabe Firmware Common Engineering Group Firmware Development Department November 4, 2010 I. Opal SSC 1. Opal SSC 2. Opal Storage 3. Opal Storage 4. 5. MBR Shadowing 6. SP 7. 8. II.
1. GPU コンピューティング GPU コンピューティング GPUによる 汎用コンピューティング GPU = Graphics Processing Unit CUDA Compute Unified Device Architecture NVIDIA の GPU コンピューティング環境 Lin
Windows で始める CUDA 入門 GTC 2013 チュートリアル エヌビディアジャパン CUDA エンジニア森野慎也 1. GPU コンピューティング GPU コンピューティング GPUによる 汎用コンピューティング GPU = Graphics Processing Unit CUDA Compute Unified Device Architecture NVIDIA の GPU コンピューティング環境
MPI usage
MPI (Version 0.99 2006 11 8 ) 1 1 MPI ( Message Passing Interface ) 1 1.1 MPI................................. 1 1.2............................... 2 1.2.1 MPI GATHER.......................... 2 1.2.2
ohp03.dvi
19 3 ( ) 2019.4.20 CS 1 (comand line arguments) Unix./a.out aa bbb ccc ( ) C main void int main(int argc, char *argv[]) {... 2 (2) argc argv argc ( ) argv (C char ) ( 1) argc 4 argv NULL. / a. o u t \0
IPSJ SIG Technical Report Vol.2014-DBS-159 No.6 Vol.2014-IFAT-115 No /8/1 1,a) 1 1 1,, 1. ([1]) ([2], [3]) A B 1 ([4]) 1 Graduate School of Info
1,a) 1 1 1,, 1. ([1]) ([2], [3]) A B 1 ([4]) 1 Graduate School of Information Science and Technology, Osaka University a) [email protected] 1 1 Bucket R*-tree[5] [4] 2 3 4 5 6 2. 2.1 2.2 2.3
CX-Checker CX-Checker (1)XPath (2)DOM (3) 3 XPath CX-Checker. MISRA-C 62%(79/127) SQMlint 76%(13/17) XPath CX-Checker 3. CX-Checker 4., MISRA-C CX- Ch
CX-Checker: C 1 1 2 3 4 5 1 CX-Checker CX-Checker XPath DOM 3 CX-Checker MISRA-C CX-Checker: A Customizable Coding Checker for C TOSHINORI OSUKA, 1 TAKASHI KOBAYASHI, 1 JUNICHI MASE, 2 NORITOSHI ATSUMI,
Nexus7 2 Skia 3 4 skia 5 2. Skia 2D Android 2D Skia 2.1 Skia Skia 2D Skia Google Chrome Mozilla Firefox Android Chorome OS Android 2D Skia [7]. Androi
Android 2D SKIA OSCAR 1,a) 1 1 1 1 1 1 Android 2D Skia OSCAR OSCAR Parallelizable C C Skia Android Skia Oprofile OSCAR Parallelizable C Parallelizable C 0xbench NVIDIA Tegra3 (ARM Cortex-A9 4 ) Nexus7
ストラドプロシージャの呼び出し方
Release10.5 Oracle DataServer Informix MS SQL NXJ SQL JDBC Java JDBC NXJ : NXJ JDBC / NXJ EXEC SQL [USING CONNECTION ] CALL [.][.] ([])
ex01.dvi
,. 0. 0.0. C () /******************************* * $Id: ex_0_0.c,v.2 2006-04-0 3:37:00+09 naito Exp $ * * 0. 0.0 *******************************/ #include int main(int argc, char **argv) { double
