自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 问答 (1)
  • 收藏
  • 关注

转载 c++Analyse-类模板编译过程

1C++编译链接全过程C++的编译过程分为预编译、编译、汇编、链接1.1 预编译预编译过程会进行一些基本的操作操作1:将会把#define宏定义进行替换#define Max 100//如程序中出现了上面的语句,则预编译结束后,程序中的所有 Max 都已经被替换成了100操作2:执行条件编译:#ifdef,#ifndef,#else,#elif,#endif 等语句#ifndef XXX#define XXX#endif/*其实上面的语句相当与一个常用的if判断语句,只不过这个判断

2021-09-18 16:40:57 720

原创 c++Analyse-多态的底层实现原理

多态的底层实现原理1.使用虚函数之前2.使用虚函数之后Cat没有实现重写Cat没有实现重写的时候Cat中存储的是Animal中的sperak();Cat实现重写Cat实现重写的时候Cat中存储的是Cat中的sperak();Animal& animal=cat;animal.speak();animal指向的是cat的对象,将从cat的虚函数表中找到Cat::speak的地址所以打印的时候出来的是猫在说话#include <iostream>#in

2021-09-05 13:30:30 271

原创 c++Analyse-菱形继承问题分析

菱形继承问题分析菱形继承:B C继承A,D继承B C问题:1.当两个父类B,C拥有相同的成员变量,D在访问的时候就会产生二义性2.D中会有继承一份来自B的成员变量,也会继承一份来自C的成员变量,这两个变量相同,导致资源浪费底层实现如下图分析:解决办法:1.两个父类拥有相同的数据,需要加以作用域区分2.利用虚继承解决菱形继承的问题,在继承之前加virtual关键字变为虚继承A为虚基类虚继承底层实现如下图分析:vbptr为虚基类指针,会指向虚基类表vbtablev-virtualb-

2021-09-05 12:53:46 148

原创 c++Analyse-继承中的对象模型分析

继承中的对象模型分析知识点:1.父类中所有非静态成员属性都会被子类继承下去2.父类中私有成员属性是被编译器隐藏了,因此访问不到,但是确实被继承下去分析:从图中可以看到,Son类继承了Base类中private权限的m_c成员变量,只是子类访问不到#include <iostream>#include <string>using namespace std;class Base{public: int m_A;protected: int m_B;pr

2021-09-05 12:19:02 140

原创 Java-成员变量和局部变量的区别

Java-成员变量和局部变量的区别public class VariableDemo{ int x; public void show() { int y = 10; System.out.println(x); System.out.println(y); }}• 成员变量: 指的是定义在类中, 方法外的变量.• 局部变量: 指的是定义在方法中, 或者方法声明上的变量.它们的区别如下:1. 定义位置不同. 成

2021-07-28 09:34:36 79

原创 JDK及IDEA下载安装

JDK下载安装1.下载下载链接1:oracle: www.oracle.com下载链接2::oracle jdk下载地址2.安装更改安装路径进行安装目录解释:• bin: 存放的是编译器和工具• db: 存数数据• include: 编译本地方法.• jre: Java运行时文件• lib: 存放类库文件• src.zip: 存放源代码的.JDK path环境变量配置1.目的让我们可以在任意目录下都能使用JDK提供的常用开发工具, 例如: javac, java2.步骤

2021-07-19 15:56:55 875 3

原创 HIP技术测试2-CPU2DCU和DCU2DCU带宽测试

HIP技术测试2-CPU2DCU和DCU2DCU带宽测试1.节点内CPU2DCU带宽测试#include <stdio.h> #include <hip/hip_runtime.h> #define NSTREAM 2 #define BDIM 512 void initialData(float *ip, int size) { int i; for (i = 0; i < size; i++) { ip[i] = (float)(rand() &a

2021-04-25 15:29:09 642

原创 数据结构-C冒泡排序、合并排序、快速排序

C 排序分析1 冒泡排序1.1 算法基本思想分析冒泡排序是典型的交换排序。交换排序就是通过元素的两两比较,判断是否符合要求,如果不符合就交换位置来达到排序的目的。冒泡排序的基本思想就是利用比较交换,利用循环将第i小或者大的元素归位,归位操作利用对n个元素相邻的两个进行比较,如果顺序正确就不交换,如果顺序错误就进行位置的交换。通过重复的循环访问数组,知道没有可以交换的元素,那么整个排序就已经完成。1.2 时间复杂度及稳定性算法最好时间最坏时间平均时间额外空间稳定性冒泡

2021-04-12 21:12:57 222

原创 算法设计-C阶乘(递归)

C 递归问题n的阶乘图解理解#include <stdio.h>#include <stdlib.h>int fact(int n){ if (n == 1) { return 1; }else { return n * fact(n - 1); }}int main(){ int result = fact(5); printf("5的阶乘为:%d", result); return 0;}参考链接:[递归叙述]...

2021-04-07 11:19:15 87

原创 算法设计-C集合划分问题(递归)

C算法 集合划分问题1 问题描述:2 数学建模:2.1思路分析2.2 数学公式3 算法实现#include <stdio.h>#include <stdlib.h>int gatherRecursion(int n, int m){ if (m==1||m == n) { return 1; }else { return m * gatherRecursion(n - 1, m) + gatherRecursion(n - 1, m -

2021-03-31 19:32:29 641

原创 算法设计-C青蛙跳台阶问题(递归)

C 青蛙跳台阶问题问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶,求该青蛙跳上一个n级台阶总共有多少种跳法。解题思路第一级:1种方式,即从0跳到第1级第二级:2种方式,即从0跳到第1级,从第1级跳到第2级,或者直接从0跳到第2级第三级:因为青蛙只有两种选择方式。那么跳到第3级的时候只有两种情况,从第1级跳两步到第3级,或者从第2级跳1步到第3级。前面已经计算,到第1级有1种方式,到第2级有2种方式,所以到第3级的方式有:11+21=3。每一次从前一级或者前两级到当前级都只有一种方式。第

2021-03-31 11:05:56 235

原创 数据结构-C栈的基本操作

C 栈C 栈的顺序存储结构#include <stdio.h>#include <stdlib.h>#define MAX_SIZE 6 /*存储空间初始分配量 */typedef struct SeqStack{ int top; int data[MAX_SIZE];}SeqStack;SeqStack* Init_Stack(){ SeqStack* stack = (struct SeqStack*)malloc(sizeof(SeqStack))

2021-03-25 16:33:48 147

原创 数据结构-C单链表基本操作

C 单链表实现1头结点#include <stdio.h>#include <stdlib.h>#include <math.h>struct ListNode{ int data; struct ListNode *next;};struct ListNode *addNodeRear(struct ListNode *head, int data){ struct ListNode *pr = head; struct ListNode

2021-03-25 09:24:24 167

原创 算法设计-C二维数组查找给定值(数组)

#include <stdio.h>int Find(int* matrix, int rows, int columns, int number){ if (matrix != NULL && rows > 0 && columns > 0) { int row = 0; int column = columns - 1; while (row < rows && column >= 0) {

2021-03-24 18:02:31 141

原创 算法设计-C一维数组查找重复值(数组)

#include <stdio.h>int duplicate(int* numbers, int length){ if (numbers == NULL || length <= 0) return -1; for (int i = 0; i < length; ++i) { if (numbers[i] < 0 || numbers[i] > length - 1) return -1; } for (int i = 0; i &l

2021-03-24 18:00:40 297

原创 C++技术测试-字符串数组和字符串指针

C++字符串数组和字符串指针#include <stdio.h>int main(){ char str1[] = "Hello World"; char str2[] = "Hello World"; char* str3 = "Hello World"; char* str4 = "Hello World"; if (str1 == str2) printf("str1 and str2 are same\n"); else printf("str1 and

2021-03-23 17:38:06 85

原创 C++技术测试-数组和指针的区别

C++数组和指针的区别#include <cstring>#include <cstdio>int GetSize(int data[]){ return sizeof(data);}int main(){ int data1[] = { 1,2,3,4,5 }; int size1 = sizeof(data1); int *data2 = data1; int size2 = sizeof(data2); int size3 = GetSize(

2021-03-23 15:06:40 89

原创 C++技术测试-(默认构造函数 有参构造函数 析构函数 复制构造函数)

1默认构造函数和有参构造函数1.1构造函数分开声明定义#include<iostream>using namespace std;class Person {public: Person(); Person(int newAge); Person(const Person& p); ~Person(); int m_age;};Person::Person(){ m_age = 0; cout << "默认构造函数" <<

2021-03-23 13:43:49 147

原创 MPI技术测试1-bsendBuffer

MPI设置bsendBuffer#include <stdio.h>#include <mpi.h>#include <unistd.h>#include <stdlib.h>#include <math.h>#define buf_size 65539int main(int argc, char **argv){ int rank, size, other; int sb[buf_size]; int rb[buf_

2021-01-25 15:10:30 356

转载 MPI技术测试-结构体类型的创建(结构体外部嵌套)

结构体类型的创建(separate)#include "mpi.h"#include <stdio.h>#include <stdlib.h>#define DOUBLE_NUMS 2struct Student{ int a; double b[DOUBLE_NUMS]; }; struct People{ Student student; int age; };void initArray

2021-01-25 14:58:11 429

原创 MPI技术测试-结构体类型的创建(SOA结构体数组)

结构体类型的创建(结构体数组)#include<stdio.h>#include"mpi.h"#include"stdlib.h"#define oldtype_nums 3#define INT_NUMS 3#define DOUBLE_NUMS 4#define CHAR_NUMS 5#define contiguous_size 10 //定义数据类型,由3个int,4个double,5个char组成。 struct my_data_type{ int

2021-01-25 14:54:24 173

原创 MPI技术测试-结构体类型的创建(结构体内部嵌套)

结构体类型的创建(merge)#include "mpi.h"#include <stdio.h>#include <stdlib.h>#define DOUBLE_NUMS 2struct People{ struct Student{ int a; double b[DOUBLE_NUMS]; }stu; int age; }people;void initArray(struct

2021-01-25 14:53:56 327

原创 MPI技术测试-结构体类型的创建(AOS&SOA组合)

结构体类型的创建(AOS&SOA组合)#include "mpi.h"#include <stdio.h>#include <stdlib.h>#define DOUBLE_NUMS 2 struct Value{ int a; double b[DOUBLE_NUMS]; };void initArray(struct Value *array, int size,int bSize){ for (int i =

2021-01-25 14:49:48 216

原创 MPI技术测试-结构体类型的创建(AOS数组结构体)

MPI派生数据类型#include "mpi.h"#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ int rank,size; struct{ int a; double b; } value; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_W

2021-01-25 14:29:55 213

原创 C技术测试-变量、数组值地址分析

数组指针#include <stdio.h>#include <stdlib.h>int main(){ int size = 6; int *array=(int *)malloc(size*sizeof(int)); for (int i = 0; i < 6; i++) { array[i] = (int)(rand() % 10 + 1); } for (int i = 0; i < 6; i++) { printf("arr

2021-01-13 17:22:55 67

原创 常用命令

1.节点分区信息1.1查看所有节点分区$sinfo1.2查看节点详情$scontrol show node=d14r4n162.文件传输从登录节点到资源节点 scp 2workspace.tar root@d14r4n16:~/从资源节点到登录节点scp root@d14r4n16:~/2workspace.tar /public/home/bomy3.作业提交3.1 srun3.2 sbatch3.2.1模板1#!/bin/bash#SBATCH -o %j

2021-01-04 15:56:56 1507

原创 多节多卡技术测试-多节点

1 makefileSOURCE =$(wildcard *.cpp)OBJS =$(patsubst %.cpp,%,$(SOURCE))HIPCC = /opt/rocm/bin/hipccGCC=/opt/rh/devtoolset-7/root/usr/bin/gccMPICC=/opt/hpc/software/mpi/hpcx/v2.4.1/gcc-7.3.1/bin/mpiccall:$(OBJS) $(OBJS):%:%.cpp $(MPICC) $^ -o $@

2020-11-16 11:28:17 447

原创 多机多卡技术测试-单节点多DCU(任务划分型-无数据传输向量加法)

makefileSOURCE =$(wildcard *.cpp)OBJS =$(patsubst %.cpp,%,$(SOURCE))HIPCC=/opt/rocm/bin/hipcccc=/opt/rh/devtoolset-7/root/usr/bin/gccall:$(OBJS) $(OBJS):%:%.cpp $(HIPCC) $^ -o $@clean: -rm $(OBJS)9.2simpleMultiDcu.cpp#include "hip/hip_runtim

2020-11-02 17:24:50 235 1

原创 多机多卡技术测试-单节点多DCU(任务划分型-无数据传输矩阵乘法)

文件目录:common.h#include <sys/time.h>#ifndef _COMMON_H#define _COMMON_H#define CHECK(call) \{ \ const hi

2020-11-02 17:24:33 282

原创 CUDA应用-方形转置(行主序)

#include "../common/common.h"#include <cuda_runtime.h>#include <stdio.h>#define BLOCK_SIZE 2#define DIMX 4#define DIMY 4void initialData(float *in, const int size){ for (int i = 0; i < size; i++) { // in[i] = (float)( rand

2020-11-02 17:23:16 136

原创 CUDA应用-矩形转置(行主序)

#include "../common/common.h"#include <cuda_runtime.h>#include <stdio.h>#define BLOCK_SIZE 2#define BDIMX 2#define BDIMY 4void initialData(float *in, const int size){ for (int i = 0; i < size; i++) { // in[i] = (float)( ran

2020-11-02 17:22:39 365

原创 CUDA技术测试-归约算法

#include "../common/common.h"#include <cuda_runtime.h>#include <stdio.h>/* outdata=indata 指针复制,此语句使oudata指向的地址和indata指向的地址相同,它们都指向同一内存区域 *outdata=*indata 指针赋值,此语句使指针outdata指向的地址(内存位置)的内容与指针indata指向地址(内存位置)的内容相同,但outdata与indata指向的地址不一定相

2020-11-02 17:21:20 221

转载 centos7.5系统下安装opencv3.4.4

step1:curl https://raw.githubusercontent.com/dvershinin/apt-get-centos/master/apt-get.sh -o /usr/local/bin/apt-getstep2:chmod 0755 /usr/local/bin/apt-get

2020-10-13 17:38:29 614

原创 多机多卡技术测试-单节点多DCU(数据传输型)

文件目录:makefileSOURCE =$(wildcard *.cpp)OBJS =$(patsubst %.cpp,%,$(SOURCE))HIPCC = /opt/rocm/bin/hipccGCC=/opt/rh/devtoolset-7/root/usr/bin/gccall:$(OBJS) $(OBJS):%:%.cpp $(HIPCC) $^ -o $@run: ./$(OBJS) 2 clean: -rm $(OBJS)simpleP2P_PingPon

2020-09-23 21:15:04 351

原创 矩阵乘法-CUDA+MPI(单个文件)

MakefileCC = /usr/bin/gccNVCC = /usr/local/cuda-10.2/bin/nvccCFLAGS = -fopenmp -g -w -O4 -I..MPI = -I /usr/local/mpich/include LIB = -L /usr/local/mpich/lib -lmpich -lopa -lmpl -lpthread all: ${NVCC} ${MPI} ${LIB} matvec.cu -o newfloatmatvecrun

2020-09-22 17:18:47 729

原创 多机多卡技术测试-多节点单DCU(HIP+MPI平方运算)

MakefileMPICC=/opt/hpc/software/mpi/hpcx/v2.4.1/gcc-7.3.1/bin/mpic++ HIPCC=/opt/rocm/bin/hipccMPI_INCLUDE=-I /opt/hpc/software/mpi/hpcx/v2.4.1/gcc-7.3.1/includeMPI_LIBS=-L /opt/hpc/software/mpi/hpcx/v2.4.1/gcc-7.3.1/lib -lmpiHIP_INCLUDE=-I /opt/rocm

2020-09-22 16:36:50 986

原创 多机多卡技术测试-多节点单GPU(CUDA+MPI平方运算)

目录结构MakefileMPICC=/usr/local/mpich/bin/mpic++NVCC=/usr/local/cuda-10.2/bin/nvccMPI_INCLUDE= -I /usr/local/mpich/includeCUDA_LIBS= -L /usr/local/mpich/libCUDA_INCLUDE= -I /usr/local/cuda-10.2/includeCUDA_LIBS= -L /usr/local/cuda-10.2/lib64 -lcudar

2020-09-21 17:09:53 889

原创 HIP技术测试1-DCU设备信息查看

#include <hip/hip_runtime.h>#include <stdio.h>#include <stdlib.h>int main() { int deviceCount; hipGetDeviceCount(&deviceCount); int dev; for (dev = 0; dev < deviceCount; dev++) { int driver_version(0), runtime_version(0

2020-09-18 10:28:36 1159

原创 CUDA技术测试1 -GPU设备信息查看

#include "cuda_runtime.h"#include "device_launch_parameters.h"#include <stdio.h>int main() { int deviceCount; cudaGetDeviceCount(&deviceCount); int dev; for (dev = 0; dev < deviceCount; dev++) { int driver_version(0), runtime_versi

2020-09-16 14:44:55 1045

原创 Centos7.5安装cuda 详细教程及所遇问题解决方法

1.查看安装环境命令代码:# cat /proc/version# rpm -qa | grep kernel# lsmod | grep nouveau2.安装NVIDIA驱动2.1禁用nouveau用lsmod命令进行查看,出现以上nouveau信息表明nouveau没有禁用禁用方法1:使用lsmod命令进行查看,没有nouveau信息表明禁用成功禁用方法2:如果禁用方法1没有成功,则可采取方法2进行禁用添加两行内容:命令代码:# lsmod | grep n

2020-08-27 17:23:50 2514

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除