自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小小小草儿的博客哟

追梦,启航

  • 博客(14)
  • 问答 (2)
  • 收藏
  • 关注

原创 【OpenBLAS】BLAS、LAPACK、ATLAS、OpenBLAS区别

1.BLAS Basic Linear Algebra Subprograms,基础线性代数子程序。定义了一组API,可以进行向量之间乘法、矩阵之间的乘法等。使用Fortran语言开发的。2.LAPACK Linear Algebra Package,线性代数包,底层使用BLAS,使用Fortran语言编写。在BLAS的基础上定义很多矩阵和向量高级运算的函数,如矩阵分解、求逆和求奇异值等。...

2018-07-25 12:00:03 5280

转载 【CUDA】设计优秀的CUDA程序

首先需要对我们的程序进行性能测试: (1)时间:使用CUDA事件的方式进行时间测试。 (2)内存带宽:根据运行时间和传入到核函数的数据内存量进行带宽计算。优秀的CUDA程序: 1. 在给定的数据规模下,选用算法的复杂度不明显高于最优的算法。 2. Active wrap(激活的线程束)的数量能够让SM载满,而且Active block的数量大于2,能够有效的隐藏访存延迟(使用足...

2018-07-19 17:10:19 438

原创 【CUDA】分配内存使用void**

在cuda中分配内存的时候,都是使用void**进行内存的分配。对于一般情况:void memory(int* p) { p = (int*)malloc(10);}int main() { int* a = 0x0001; memory(a); return 0;}此时a指向的地址是0x0001,而且p指向的地址也是0x0001,但是a和p...

2018-07-18 16:21:59 1916

原创 【CUDA】CMakeLists实现CUDA编译

# 设置CMake版本cmake_minimum_required(VERSION 3.5)project(Test1)set(EXECUTABLE_OUTPUT_PATH ../)# 找到CUDA路径并导入头文件find_package(CUDA REQUIRED)include_directories(${CUDA_INCLUDE_DIRS})# 设置C++版本set(CMAK...

2018-07-18 11:16:05 6922 1

原创 【Neon】arm neon指令集指令解析

在arm neon的指令集中,大多数都是单词的缩写加一些特殊的前后缀修饰符。正常指令q 可以对任一向量类型执行运算,并生成大小相同且类型与操作数向量相同的结果向量。长指令l 长指令对双字向量操作数执行运算,并生成四字向量结果。所生成的元素通常是操作数元素宽度的两倍,并属于同一类型。宽指令w 宽指令对一个双字向量操作数和一个四字向量操作数执行运算。所生成的元素和第一个操作数的元素是...

2018-07-17 10:51:39 4853

原创 【Linux技术】ubuntu挂载远程终端文件夹

在对多个设备进行开发的时候,来回切换系统是十分麻烦的。因此可以使用安全协议ssh进行远程连接,使用sshfs进行文件夹挂载。在终端进行远程连接ssh Username@IPaddress挂载远程文件夹sshfs Username@IPaddress:Path mount_path第一个Path表示要进行挂载的远程文件夹,第二个mount_path表示是在本地进行挂载的路径。...

2018-07-14 11:45:43 1369

原创 【行人重识别】行人重识别相关知识

1 Reid技术常见数据集2 Reid技术难点3 Reid数据采集的特点1 Reid技术常见数据集 属性 Market1501 DukeMTMC-reID CUHK03 拍摄地点 清华大学 Duke大学 香港中文大学 图片数量 32217 36441 13164 行人数量 1501...

2018-07-11 10:40:47 1175

原创 【行人重识别】Part-Aligned Bilinear Representations for Person Re-identification论文阅读

Part-Aligned Bilinear Representations for Person Re-identification0 论文简介1 论文主要技术1.1 网络结构1.2 损失函数1.3 计算相似度1.4 对比普通模型2 实验与分析2.1 训练过程2.2 复现细节2.3 验证数据集3 解决的问题及对应方案0 论文简...

2018-07-10 15:23:59 3203 2

原创 【C++学习】explicit修饰构造函数

在C++中,可以使用关键字explicit对类的构造函数进行修饰。被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。官方解释:禁止隐式调用类内的单参数构造函数。(1)该关键字只能用于修饰类内部的构造函数。 (2)该关键字修饰的构造函数只能是单参数构造函数,对于多参数构造函数是无效的。 (3)禁止隐式调用拷贝构造函数。 (4)禁止类对象之间的隐式转换方式。...

2018-07-09 17:40:20 1214

原创 【C++学习】C++多线程初步入门---thread库

对于多线程编程,一个是并行,另外一个是并发。并行是指两个或多个独立的操作同时进行。并发是指在一个时间段内执行多个操作。例如,在常见的四核四线程可以并行四个线程,但是对于四核八线程是使用了超线程技术,把一个物理模拟为两个逻辑核心。1 并发编程的方法1.1 多进程并行1.2 多线程并行2 C++11 线程的使用方式3 线程管理3.1 启动一个线程3.2 异常情况下等待线程完...

2018-07-09 17:25:51 1278

原创 【OpenMP】多线程计算过程中任务调度问题

对于OpenMP的任务调度主要针对于并行的for循环,当每一次循环过程中的计算时间复杂度不一致的时候,简单的给每一个线程分配相同次数的迭代,会导致线程计算负载不均衡。不仅如此,对于实时计算的计算机,每一个核心的占用率是不一样的。针对该问题,OpenMP中给出多种线程调度的方式。1. 基本使用#include <stdio.h>#include <omp.h&gt...

2018-07-07 11:30:48 1389

原创 【C++学习】C++实现高效内存池

1.内存池简介2.函数实现2.1 主函数2.2 StackAlloc.h2.3 StackAlloc.cpp2.4 禁用拷贝赋值2.5 静态断言与断言2.6 使用reinterpret_cast1.内存池简介内存池是池化技术中的一种形式,通常我们在编写程序的时候使用new和delete关键字向操作系统申请内存。但是每一个申请内存和释放内存的...

2018-07-05 20:15:41 1397 1

原创 【神经网络】神经网络加速之量化模型

1.简介2.模型介绍2.1 DeepCompression2.2 Binary-Net2.3 Ternary-Net3.实验分析3.1 Binary-Net in MNIST3.2 Ternary-Net in MNIST3.3 DoReFa-Net in MNIST4.卷积优化4.1 内存换时间4.2 乘法优化4.3 GPU优化4.4 Strassen算...

2018-07-04 15:31:07 3009 1

原创 【Neon】配置Android Studio错误

在使用Android studio的时候,出现错误Gradle project sync failed.Basic functionality(e.g. editing, debugging) will not work properly. 经过分析,发现错误Android update causing error: Error: java.nio.file.AccessDeniedExcept...

2018-07-04 10:34:49 779

空空如也

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

TA关注的人

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