自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

叶子心情你不懂

但愿能遇到懂我的人

  • 博客(167)
  • 资源 (1)
  • 收藏
  • 关注

原创 cuda编程学习笔记 第二章 cuda memory management

应用的性能可能有 75% 都花费在内存相关问题上。NVPROF and NVVP这俩是调试工具,不知道是不是基于CUPTI (CUDA Profiler Tools Interface)。NVPROF是命令行工具,nvvp是可视化工具。nvvp有四个模块:Timeline,Summary,Guide,Analysis results其中 Guide 适合新手,新手应该多注意。为了分析出应用的性能瓶颈,我们需要timeling analysis 和 metric analysis编译:要in

2021-09-12 22:03:05 751

原创 cuda编程学习笔记 第一章 introduction

准备系统学习cuda知识。这一章基本都懂,记录一下一些细节:global 表示函数在device上 后面永远是voiddevice function is asynchromous. cudaDeviceSynchronize() waits the device code finish用自带的变量类型可以自动实现alignment,如果自定义结构体需要手工操作:struct __align__(16) {float a, b, c;} 记录查询到的我笔记本的GPU参数,方便编程:gt

2021-09-11 10:37:51 159

原创 现代c++编程c++11/14/17/20:Chapter 05 Smart Pointers and Memory Management

5.1 RAII and Reference Counting理解Objective-C/Swift/JavaScript的程序员应该知道引用计数的概念。对引用计数进行计数以防止内存泄漏。基本思想是计算动态分配对象的数量。每当添加对同一对象的引用时,所引用对象的引用计数将增加一次。每删除一个引用,引用计数就减少1。当对象的引用计数减少到零时,所指向的堆内存将被自动删除。在传统的c++中,记住手动释放资源并不总是最佳实践。因为我们很容易忘记释放资源,导致泄漏。所以通常的做法是,对于对象,我们在构造函数时分

2020-11-14 17:25:07 322

原创 现代c++编程c++11/14/17/20:Chapter 04 Containers

4.1 Linear Container4.1.1 std::array当你看到这个容器时,你肯定会遇到这样的问题:为什么直接介绍std::array而不是std::vector ?已经有传统数组了,为什么要用std::array?首先回答第一个问题。与std::vector不同,std::array对象的大小是固定的。如果容器的大小是固定的,那么可以先使用std::array容器。此外,由于std::vector是自动展开的,当存储大量数据时,容器被删除,容器不会自动返回被删除元素的对应内存

2020-11-14 16:25:29 357

原创 OpenMP + MPI 编程 (七)Quiz

Hybrid programming combines what two models of computing?Shared-memory parallel and distributed-memory parallelParallel and serialMessage-passing and NUMAAll of the aboveCorrect.An MPI process is generally single-threaded unless the code has been..

2020-11-13 16:29:58 424

原创 OpenMP + MPI 编程 (六)Hybrid Program Template & Types of MPI Calls Among Threads

Hybrid Program TemplateStart with MPI initialization(Serial regions are executed by themain thread of the MPI process)Create OMP parallel regions withineach MPI processMPI calls may be allowed here tooMPI rank is known to all threadsCall MPI in sin

2020-11-13 16:29:22 419

原创 OpenMP + MPI 编程 (五)NUMA Operations&using numactl&SMP Nodes&SMP Sockets

NUMA OperationsIf memory were completely uniform, there would be no need to worry about questions like “where do processes go?”. Only for NUMA is the placement of processes/threads and allocated memory (NUMA control) of any importance.The default NUMA co

2020-11-13 16:28:51 567

原创 OpenMP + MPI 编程 (四)Two Ways to View a Node When Writing Parallel ProgramsANDCreating Hybrid Configur

Two Ways to View a Node When Writing Parallel ProgramsOpenMP (or pthreads) onlylaunch one process per nodehave each process fork one thread (or maybe more) per coreshare data using shared memorycan’t share data with a different process (except mayb

2020-11-13 16:28:31 160

原创 OpenMP + MPI 编程 (三)Dealing with NUMA and Why Hybrid? Or Why Not?

Dealing with NUMAHow do we deal with NUMA (Non-Uniform Memory Access)?Standard models for parallel programs assume a uniform architectureThreads for shared memoryparent process uses pthreads or OpenMP to fork multiple threadsthreads share the same

2020-11-13 16:27:59 224

原创 OpenMP + MPI 编程 (二)Stampede2 RAM Arrangement

Stampede2 RAM ArrangementStampede2 includes 4,200 Intel Xeon Phi compute nodes with KNL processors, and 1,736 Intel Xeon compute nodes with Skylake processors. While the two sides of the system have notable differences, the general organization of Stamped

2020-11-13 16:27:11 192

原创 OpenMP + MPI 编程 (一)Introduction

Yun (Helen) He and Chris Ding, Lawrence Berkeley National Laboratory, June 24, 2004: Hybrid OpenMP and MPI Programming and Tuning (NUG2004).Texas Advanced Computing Center: Stampede2 User Guide: Hybrid Model.Message Passing Interface Forum: MPI-2: M.

2020-11-13 16:26:38 266

原创 现代c++编程c++11/14/17/20:Chapter 03: Language Runtime Enhancements

3.1 Lambda ExpressionLambda表达式是现代c++中最重要的特性之一,而Lambda表达式实际上提供了一个类似于匿名函数的特性。匿名函数在需要函数时使用,但您不希望使用名称调用函数。实际上有很多很多这样的场景。所以匿名函数几乎是现代编程语言的标准。3.1.1 BasicLambda表达式的基本语法如下:[capture list] (parameter list) mutable(optional) exception attribute -> return type {

2020-10-15 17:00:24 271

原创 现代c++编程c++11/14/17/20:Chapter 02: Language Usability Enhancements

当我们在运行前声明、定义一个变量或常量、控制代码流、面向对象的函数、模板编程等时,它可能发生在编写代码或编译器编译代码时。为此,我们通常谈论语言可用性,它指的是在运行时之前发生的语言行为。2.1 Constants2.1.1 nullptrnullptr的用途似乎取代了NULL。 在某种意义上,传统的c++将NULL和0看作是一样的东西,这取决于编译器如何定义NULL,一些编译器将NULL定义为((void*)0)一些将直接定义为0。c++不允许隐式地将void * 转换为其他类型。但是如果编译器试

2020-10-08 11:36:48 753

原创 现代c++编程c++11/14/17/20:Chapter 01: Towards Modern C++

1.1 Deprecated FeaturesDeprecation并不是完全不可用的,它只是暗示一些特性将从未来的标准中消失,应该避免使用。然而,不赞成使用的特性仍然是标准库的一部分,而且大多数特性实际上是“永久”保留的,这是出于兼容性的原因。如果你从未使用或听说过下面的一些标准,请不要试图去理解它们。您应该直接学习新特性字符串常量不再允许分配给char *。如果您需要用一个字符串常量来分配和初始化一个char *,您应该使用const char *或auto。 char *str = "h

2020-10-06 20:01:04 263

原创 现代c++编程c++11/14/17/20:Preface

翻github,发现c++长的和我学的太不一样了。课堂学的还是c++98,但是现在已经20年了。链接Introductionc++的用户组是相当大的。从c++ 98的出现到c++ 11的正式定稿,它已经积累了十多年的时间。c++ 14/17是对c++ 11的重要补充和优化,而c++ 20将该语言带到了现代化的大门。所有这些新标准的扩展特性都提供给了c++语言。焕发出新的活力。那些仍在使用传统c++(本书将c++ 98及其以前的c++标准称为传统c++)的c++程序员甚至可能会惊讶于这样一个事实:在阅读

2020-10-06 17:48:00 676

原创 GNU中用于原子内存访问的内置函数

https://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.htmlAPI功能type __sync_fetch_and_add (type *ptr, type value, …)type __sync_fetch_and_sub (type *ptr, type value, …)type __sync_fetch_and_or (type *ptr, type value, …)type __sync_fetch_an

2020-08-13 23:10:54 186

原创 libnuma详解(A NUMA API for LINUX)

白皮书numa3手册numa3手册一、什么是NUMA关于这个很多博客都有,基本都是这个白皮书的翻译或者扩充。在传统的SMP(对称多处理)系统中,计算机有一个由所有cpu共享的内存控制器。当所有处理器同时访问内存时,这种单一内存连接常常成为瓶颈。对于具有更多cpu的大型系统,它也不能很好地扩展。由于这个原因,越来越多的现代系统正在使用CC/NUMA(缓存一致性/非一致性内存访问)架构。例如AMD* Opteron*、IBM* Power5*、HP* Superdome和SGI* Altix*。

2020-08-05 22:23:01 10111

原创 图计算系统小调研

仔细看看图计算系统是干嘛的,做笔记,决定未来方向。一. 费马科技 五篇知乎文 图计算系统发展简史https://zhuanlan.zhihu.com/p/83202666社交网络分析、网页排序、社区发现、天体物理学、计算化学、生物信息学、超大规模集成电路的设计、运输路线的规划、电力网络的仿真模拟等等早期的图计算框架:早期的面向图计算的程序库缺乏对用户友好的编程模型,需要介入和管理的细节较多,上手难度大(BGL、PBGL)。通用大数据处理系统通过较为廉价的普通服务器集群进行大规模数

2020-08-04 22:39:32 789

原创 OpenMP学习笔记

一、OpenMP简介1. 内存共享并行模型。机器必须多处理器/核,共享内存。底层架构可以是UMA和NUMA。UMANUMA2. Fork-Join模型重复fork-join操作。3. OpenMP特性OpenMP仅通过线程来完成并行。OpenMP的程序一般由串行等价性,也就是并行运算最终的结果会和某个串行程序相等。支持 c / c++ 等语言。 编译器VS、gcc、clang等都支持OpenMP。可移植性好。编译命令一般加上-fopenmp就可以。二、Op

2020-08-04 22:34:59 3177 1

原创 Introduction to statistical machine learning复习笔记1概率密度部分

概率密度部分期望和峰值 当outliers很严重skewness and kurtosis Skewness: E[(x−E[x])3](D[x])3 Kurtosis: E[(x−E[x])4](D[x])4−3\begin{array}{l}\text { Skewness: } \frac{E\left[(x-E[x])^{3}\right]}{(D[x])^{3}} \\\text { Kurtosis: } \frac{E\left[(

2020-07-22 21:54:31 307

原创 Introduction to statistical machine learning(chapter 27 SUPPORT VECTOR CLASSIFICATION)

27.1 MAXIMUM MARGIN CLASSIFICATIONIn this section, a classifcation algorithm called the support vector machine isintroduced, which is based on the margin maximization principle.27.1.1 HARD MARGIN S...

2020-07-18 14:02:41 283

原创 The SpectACl of Nonconvex Clustering: A Spectral Approach to Density-Based Clustering

摘要最小割和最大密度经常用来对非凸数据聚类。最小割对噪音敏感。基于最大密度的聚类方法很难聚类聚簇中心们的密度不同的情况。本文介绍的SPECTACL方法集两者之长,去两者之短。本方法有谱聚类的易于实现的特点,并且用理论证明给出了合理的聚簇中心密度标准。一、简介谱聚类通过对数据相似性矩阵的频谱进行降维,解决了聚类任务公式中固有的维数诅咒。DBSCAN是基于密度的算法。两者都能聚类非...

2020-07-18 14:01:24 173

原创 Bias-Variance Tradeoff

一、概念理解偏差:将模型的期望(或平均)预测和我们正在试图预测正确值之间的差定义为偏差。方差: 将模型之间的多个拟合预测之间的偏离程度定义为方差。二、数学定义我们定义需要预测的真实结果YYY,与其对应的自变量XXX(训练样本),之间有这样的关系:Y=f(X)+ϵY = f(X) + ϵY=f(X)+ϵ (我们认为ϵϵϵ满足正态分布ϵ∼N(0,σϵ))’ϵ∼N(0,σϵ) )’ϵ∼N...

2020-07-18 14:00:06 255

原创 朴素贝叶斯

https://blog.csdn.net/cnweike/article/details/47398405https://blog.csdn.net/fisherming/article/details/79509025https://www.cnblogs.com/DHuifang004/p/11406211.htmlhttps://www.cnblogs.com/elpsycongro...

2020-07-18 13:57:15 418

原创 Hession矩阵判断极值

多元函数的泰勒展开式泰勒公式是将一个在x=x0x=x_0x=x0​处具有nnn阶导数的函数f(x)f(x)f(x)利用关于(x−x0)(x-x_0)(x−x0​)的nnn次多项式来逼近函数的方法。f(x1,x2,..xn)f(x_1, x_2,..x_n)f(x1​,x2​,..xn​)在点X0X_0X0​处的泰勒展开...

2020-07-18 13:55:31 6152

原创 F范数 低秩矩阵近似高秩矩阵

F范数定义∥A∥=∑m,n=1,1M,Nam,n2\|A\|=\sqrt{\sum_{m,n=1,1}^{M, N}a_{m,n}^2}∥A∥=m,n=1,1∑M,N​am,n2​​SVD-singular value decompositionAAA is a m×nm\times nm×n matrix.A=UΣV∗=U[Σk000]V∗A=U\Sigma V^*=U\begin{bm...

2020-07-18 13:48:36 1509 1

原创 pytorch Autograd: Automatic Differentiation

torch.Tensor:核心数据结构tensor的.requires_grad为true的话会记录所有关于本tensor的计算,也就是会算梯度tensor的相关计算结束后.backward()可以自动计算梯度,存在.grad参数里.detach()方法会返回一个新tensor,这个tensor可以停止跟踪本tensor,将来的计算也不会被跟踪with torch.no_grad():可以...

2020-07-18 13:30:01 187

原创 增强学习-五子棋

https://zhuanlan.zhihu.com/p/32089487https://blog.csdn.net/DataGrand/article/details/86700062https://zhuanlan.zhihu.com/p/30282616https://blog.csdn.net/LIYUAN123ZHOUHUI/article/details/78741917?utm...

2020-07-18 13:29:12 1513

原创 《因果推理原理:基础与学习算法》 前言

因果律是一个引人入胜的研究课题。它的数学化是最近才开始的,许多概念问题仍在辩论之中,而且辩论的程度往往相当激烈。这本书虽然总结了我们关于因果律的10年心血,但其他人研究这个问题的时间要比我们长得多,而且已经有了关于因果律的书籍,包括the comprehensive treatments of Pearl[2009],Spirtes等[2000],Imbens和Rubin[2015]。我们希望我们的书能够以两种方式补充现有的工作。第一种,本书展现了对一个因果律子问题的重视,这个子问题可能被认为是最基本和

2020-07-18 13:26:41 568

原创 《因果推理原理:基础与学习算法》第一章 因果模型和统计模型

利用统计学习,我们试图从观测数据中推断出随机变量之间的相关性。例如,基于对两个随机变量的联合观察样本,我们可以构建一个预测器,该预测器在只给出其中一个变量的新值的情况下,可以很好地估计另一个变量。这种预测背后的理论已经得到了很好的发展,尽管它只适用于简单的环境,但已经为从数据中学习提供了深刻的见解。由于两个原因,在本章我们将描述这些中的一些见解。首先,这将帮助我们理解因果推理的问题有多困难,其中潜在的模型不再是一个固定的随机变量联合分布,而是一个包含多个这样的分布的结构。第二,尽管有限样本结果的因果估计是稀

2020-07-18 13:26:11 3489 4

原创 《因果推理原理:基础与学习算法》第二章 因果推理的假设

既然我们已经了解了SCMs的基本组成部分,现在是暂停并考虑我们已经看到的一些假设的好时机,以及为了因果推理和学习的目的这些假设意味着什么。我们讨论的一个重要概念将会是一种“”独立“”的形式,并且我们可以使用一种被称为Beuchet椅子的视错觉来非正式地介绍它。当我们看到像图2.1左边这样的物体时,我们的大脑会做出这样的假设:物体和它发出的光所包含的信息到达我们大脑的机制是相互独立的。我们可以从一个非常具体的角度来看待这个物体,从而打破这个假设。如果我们这样做,感知就会出错:我们会感知到椅子的三维结构,而这

2020-07-18 13:25:43 1711

原创 《因果推理原理:基础与学习算法》第三章 因-果模型

本章将因果关系的一些基本概念公式化,适用于因果模型只包含两个变量的情况。假设这两个变量不是无关紧要的,并且它们的依赖关系不仅仅是由于一个共同的原因,这就构成了一个因果模型。我们简要介绍SCMs、干预措施和反事实。所有这些概念都是在多元因果模型的背景下再次定义的(第六章),我们希望在两个变量中首先遇到这些概念会使这些概念更容易理解。结构化因果律模型SCMs是将因果关系和概率关系联系起来的重要工具。定义3.1 (结构因果模型)SCM C与graph 'C->E’由两个赋值公式组成:C:=NC;(3

2020-07-18 13:25:06 1295

原创 Gram矩阵

格拉姆矩阵可以看做feature之间的偏心协方差矩阵(即没有减去均值的协方差矩阵)内积之后得到的多尺度矩阵中,对角线元素提供了不同特征图各自的信息,其余元素提供了不同特征图之间的相关信息。https://blog.csdn.net/wangyang20170901/article/details/79037867/...

2020-07-18 13:22:40 241

原创 c++ 实现linear和CNN神经网络(数学公式)

https://www.cnblogs.com/pinard/p/6422831.htmlhttps://www.cnblogs.com/pinard/p/6494810.htmlhttps://www.cnblogs.com/pinard/p/10750718.htmlhttps://www.cnblogs.com/pinard/p/10773942.html理论多层感知机前向传播及导数al=σ(wlTal−1+bl)ml×n=σ(ml×ml−1×ml−1×n+ml×1)a^l=\sigma(

2020-07-18 13:20:28 907

原创 贝叶斯概率模型

一、贝叶斯模型思想贝叶斯理论的思想,简单点讲就是要在已知条件的前提下,先设定一个假设,然后通过先验实验来更新这个概率。工作流程优点1. 基于古典数学理论,分类效率稳定2. 对缺失数据不敏感3. 准确度高,速度快4. 小规模数据表现好5. 能处理多分类6. 增量训练,分批训练缺点1. 依赖训练数据2. 属性不能相关3. 需要基于先验概率,假设出来的先验概率可能出...

2020-07-18 13:18:02 4766

原创 概率期望讲解

一、概率基本知识条件概率:B发生的情况下A发生的概率P(A∣B)=P(AB)P(B)P(A|B)=\frac{P(AB)}{P(B)}P(A∣B)=P(B)P(AB)​划分样本的概率P(A)=∑i=1nP(A∣Bi)P(A)=\sum_{i=1}^{n}{P(A|B_i)}P(A)=i=1∑n​P(A∣Bi​)贝叶斯公式P(Bi∣A)=P(Bi)P(A∣Bi)P...

2020-07-18 13:09:03 1457

原创 SpringMVC...

SpringMVCDispatcherServlet – 前置控制器HandlerMapping接口 – 处理请求的映射HandlerMapping接口的实现类:SimpleUrlHandlerMapping 通过配置文件,把一个URL映射到ControllerDefaultAnnotationHandlerMapping 通过注解,把一个URL映射到Controller类上...

2020-07-18 13:07:42 58

原创 聚簇算法笔记

前言:聚簇的中心以和邻居相比来说更高的密度和高密度的点的距离来做指标。算法特点聚簇中心会自动得到,离群点会自动排除,并且聚簇的识别和它本身的形态以及数据的维度无关。正文:由已有的一些基于划分、分布、密度的聚类引出本算法。该算法的基础是假设簇中心被局部密度较低的邻居所包围,并且这些聚簇中心与局部密度较高的点之间的距离相对较大。对于每个点算两个值:密度ρi\rho_{i}ρi​和与密度更高...

2019-04-19 00:41:05 2776

原创 最大公共子串-fft(Gym-101667H)

题意,给两个串求最长公共子串。一看到这个题目显然n^2啊。知道fft这个做法后什么动态规划弱爆了啊。解法首先题目给的串是锤子剪刀布,所以要把其中某个串按照锤子剪刀布的规则变换一下,然后就是最大公共子串的问题了。给第二个串翻转一下,然后对于每个位置的匹配就都会变成卷积的形式。对每种字符计算:原串为该字符的部位变为1,其余部位变为0。例如串RRRSPP,我们就算字母S,那么这个串就变成000...

2019-04-05 14:57:10 477

原创 Kuangbin专题十四数论基础

A - Bi-shoe and Phi-shoeLightOJ - 1370Bamboo Pole-vault is a massively popular sport in Xzhiland. And Master Phi-shoe is a very popular coach for his success. He needs some bamboos for his studen...

2019-04-02 10:36:04 1895

挑战程序设计竞赛

《挑战程序设计竞赛(第2版)》对程序设计竞赛中的基础算法和经典问题进行了汇总,分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由浅入深、由易及难的细致讲解,并介绍了许多实用技巧。每章后附有习题,供读者练习,巩固所学。

2018-02-01

空空如也

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

TA关注的人

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