自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Johnsonjjj的博客

此时不努力,待何时?

  • 博客(46)
  • 收藏
  • 关注

原创 Pytorch geometric中SparseTensor所包含的COO、CSR、CSC稀疏矩阵存储方式介绍

Pytorch geometric中SparseTensor的三种稀疏矩阵压缩存储方式COO、CSR、CSC介绍

2022-07-22 23:36:58 1180 1

原创 Anatomy of High-Performance Many-Threaded Matrix Multiplication 笔记

Anatomy of High-Performance Many-Threaded Matrix Multiplication文章主要是对GEMM中几种潜在的多线程实现方法进行性能分析。看本篇文章需要先看前置论文:Anatomy of High-Performance Matrix MultiplicationAnatomy of High-Performance Many-Threaded Matrix MultiplicationGEMM分块执行流程(单线程)上图是单线程下GEMM中各分块所

2021-01-05 11:43:46 799 1

原创 关于多功能单元流水线的延迟(latency)与启动间隔(Initiation interval)

前言因为前段时间在写Intel Intrinsics, 看到latency和Throughput(CPI)一直不太理解。直到今天刚好看到了《计算机体系结构——量化研究方法》中关于MIPS中多功能单元(长延迟)流水线的介绍,才发现两者好像有一定的关系。因此本篇博客主要是我对MIPS中多功能单元(长延迟)流水线中的latency和Initiation interval的理解,以及简单谈一谈它们与指令latency、Throughput的关系。正文《计算机体系结构——量化研究方法》中的MIPS多功能单元流水

2020-11-18 23:07:32 4325 2

原创 C++ STL 迭代器Iterator、五种迭代器类别

前言最近在看《STL源码剖析》,并且也跟着在实现algorithm.h这个头文件。里面的算法基本都是对迭代器所指向的容器区间内的元素做操作,因此这些算法的泛型模板参数基本都有迭代器类型。针对不同的算法,对迭代器类型的要求也不同,本篇博客我就简单介绍一下C++中的五种迭代器类别。五种迭代器类别的关系首先介绍五种迭代器类别:输入迭代器input iterator输出迭代器output iterator前向迭代器forward iterator双向迭代器bidirectional iterator

2020-08-04 11:43:10 5221 3

原创 STL源码剖析——copy函数

前言最近在看《STL 源码剖析》,恰好看到copy函数这里。书上写的这个函数比较复杂,因为涉及到比较多提高效率的方法。因此我这篇博客就当做个简单的记录吧。copy函数的原型如下:template<class InputIterator, class OutputIterator> inline OutputIterator copy( InputIterator first, InputIterator last, OutputIte

2020-08-02 13:32:38 1098

原创 APUE 文件打开时文件描述符表、文件表、索引结点表状态

前言今天在看UNP,看到socket的文件描述符,想起之前在看APUE时觉得比较绕的文件描述符、文件表项等知识,于是决定对相关知识整理一下。本篇博客的大部分内容都引用自:https://blog.csdn.net/luotuo44/article/details/17474099。原文写的很棒!文件描述符、文件表、索引节点表在进程打开一个文件时,会与三个表发生关联:文件描述符表、文件表、索引结点表。每个进程都有一张专属的文件描述符表,它负责保存当前进程已经打开的文件相关的文件描述符。文件表则是一张很大

2020-07-31 21:00:21 321

原创 C与C++的内存分布

前言关于C与C++的内存分布这个,我一直很迷糊,这次决定写一篇博客来记录一下。参考博客为:[http://harlon.org/2018/04/21/cpluscplusmemory/]C程序内存布局C程序的内存空间布局如上图所示,分为内核空间和用户空间。内核空间主要包括一些进程相关的信息等,用户空间就是一些与程序本身相关的信息。用户空间主要分为以下几个部分:文本段(Text)数据段(Data)BSS段堆(Heap)栈(Stack)文本段(Text)分成 RO DATA 与

2020-06-30 22:45:43 380

原创 APUE(Unix 环境高级编程)——守护进程

今天补了一下APUE的13章,守护进程部分。这里简单记录一下,当个笔记吧。我的理解:守护进程就是后台进程,没有控制终端,所以无法与用户进行交互,就只是在后台默默执行。守护进程的实现步骤使用umask将文件模式创建屏蔽字设置为一个已知值。因为守护进程是一个子进程,他会继承父进程的文件模式创建屏蔽字,所以本身它是一个不确定的值。我们需要为守护进程设置合适的值。文件模式创建屏蔽字用于决定创建新文件或新目录时,新文件或新目录的默认访问权限。需要调用fork,来产生子进程,然后父进程调用exit结束。为什么

2020-06-29 23:38:34 271

原创 C++ 模板函数与分离编译问题

前言今天在写一个模板类的时候,涉及到模板类的成员函数定义。按一般的情况来说,类的成员函数的声明是放在头文件(.h)中,而成员函数的定义是放在相应的源文件(.cpp)中。在调用函数时,编译器只需要掌握函数的声明,具体的定义可以到所链接进来的源文件产生的目标文件(.o)中寻找。所以我写模板类的时候也照着这个原则做了,结果运行的时候报错了。接下来就来简单分析一下原因和解决方案。问题描述首先有一个自己写的模板类,类定义写在TreeNode.h头文件中,成员函数在头文件中只有声明:#ifndef STUDEN

2020-06-22 17:38:00 831

原创 C++ const成员函数小记

前言今天在看《STL源码解析》并仿写queue时,遇到一个我经常会混淆的问题,如下:template <class T, deque<T> >class queue { ……public: // 非const成员函数,返回数据的引用 reference front() { return c.front(); } // const成员函数,返回数据的常量引用 const_reference front() const { return c.front(); }

2020-06-16 23:42:33 159

原创 使用Selenium和BeautifulSoup实现爬虫爬取动态加载的网页

前言​ “实践是最好的学习方式。“我一直相信这句话。每一次的实践,都在重复地验证这句话的重要性。​ 这次女票又有一个新的需求,她说她想要爬下某网站上的文案,要实现离线学习。之前因为需要,我会自己写一些爬虫来保存某些网页上的信息,更方便在本地进行查看。(不能将这些信息用于盈利行为,这是违法的!!!)所以这次我也接下了她的这个小项目。​ 以前的爬虫基本都是静态爬虫,用request网络请求库加上...

2020-05-02 11:59:31 6485 3

原创 Unix 环境高级编程(APUE) system函数和sleep函数简单解析

前言最近在看《Unix 高级环境编程》的第十章,内容主要是与信号相关的概述和API。在看到章末的时候,有两个函数system()和sleep()的实现让我感觉比较困惑,并且在函数的内部实现中也使用了很多前面与信号相关的API,所以我觉得有必要好好实现一下这两个函数。于是我就照着书上的代码重新实现了一遍,并在代码中加入了相关的注释,算是记录一下我的个人理解吧。system()函数函数功能sy...

2020-03-26 01:13:27 558 2

原创 C++ 头文件.h 和 源文件.cpp 以及多重定义(multiple definition)

前言之前虽然学过C++,但是都是零零散散看的,很多特性,尤其是C++ 11的特性我都不知道。因此最近在看C++ primer,算是系统地过一遍C++吧。在差不多看完C++ primer之后,对C++有了更深的理解,我才发现C++真是一门很有魅力的语言。虽然控制底层的东西很繁琐,但是也给了程序员一个接触底层的机会。在写书上的代码时,我又遇到了一个刚入门时反复遇到的问题:头文件(.h)和源文件(....

2020-02-19 00:45:10 2405

原创 论文阅读笔记系列(一)SMAT: An Input Adaptive Auto-Tuner for Sparse Matrix-Vector Multiplication

前言最近一直觉得自己只是在看书,看文献,但是没有尝试动手写一些总结,写一些笔记,导致看书的效率实在太低。因此想做一个论文笔记系列,把自己读的论文简单地总结一下。同时也借此将看过的文献分享给大家,如果有看过相关文献的可以互相讨论一下。第一期我就简单说一说我最近看的一篇论文,SMAT: An Input Adaptive Auto-Tuner for Sparse Matrix-Vector Mu...

2020-01-11 15:06:07 591

原创 C++类型转换——const_cast,static_cast,reinterpret_cast,dynamic_cast转换

前言最近有时间就会看一看C++ primer,快速过一遍C++,因为感觉自己都是零零碎碎地学C++,没有系统地看过。今天刚好看到第四章类型转换,发现之前一直没有认真了解过C++的类型转换,只会用万能的括号强制转换法。所以今天这篇博客就当一个学习记录。新的类型转换有四种,const_cast,static_cast,reinterpret_cast,dynamic_cast。今天先讲三种,dyn...

2020-01-01 20:29:45 431

原创 使用性能测试工具TAU测试MPI程序记录

前言最近又重新把性能测试给捡起来了。所以决定再重新使用TAU(Tuning and Analysis Utilities )来做一些性能测试。测试的程序主要是组里一个师兄开发的基因组装程序,使用MPI+C++编写的。对于MPI的程序,当下来说最好的测试工具就是TAU了。因为这一篇博客主要是对测试过程做一个简单的记录,所以关于TAU的安装过程、原理介绍等,大家可以在去查看相关的论文。测试过程...

2019-12-27 16:14:31 3030 13

原创 Python从父目录的其他文件夹中导入模块的解决方案(亲测有效)

简单吐槽这两天在下载github上的python程序来跑的时候,发现经常出现的一个问题:当在某一python脚本文件想要导入父目录下的其他文件夹中的模块时,会报错Traceback (most recent call last):File "/home/zhuangb/桌面/pp/test2/p2.py", line 15, in <module>from test1.p1 im...

2019-12-03 16:28:08 13036 23

原创 Leetcode——494. Target Sum

题目描述You are given a list of non-negative integers, a1, a2, …, an, and a target, S. Now you have 2 symbols + and -. For each integer, you should choose one from + and - as its new symbol.Find out how...

2019-11-30 11:46:11 158

转载 Anaconda Jupyter Notebook中实现代码提示功能

1.进入Anaconda的命令行模式2.在命令行下输入以下命令1)pip install jupyter_contrib_nbextensionsjupyter contrib nbextension install --user2)pip install --user jupyter_nbextensions_configuratorjupyter nbextensions...

2019-11-12 11:45:23 6195

转载 C++如何正确地在类中初始化vector成员变量(转载)

转载自:https://blog.csdn.net/greenlight_74110/article/details/89137520错误的方法:class Foo(){public: // 这两种方法都会报错 vector<string> name(5); vector<int> val(5,0);}正确的方法:C++ 11...

2019-10-25 16:03:01 6597

原创 《大规模并行处理器编程实战》笔记

前言这一篇文章主要是作为我在看完《大规模并行处理器编程实战》这本书之后的一个学习记录。有些内容因为我在上一篇博客已经记录过了,这一篇就不做记录了。第六章 性能优化6.1 更多关于线程执行的问题GPU调度的基本单位为warp,一般由32个thread组成。因为GPU的执行方式为SIMT(单指令多线程),也就是一条指令会被所有线程一起执行,等到这条指令被所有线程执行完,才执行下一条指令。所以如...

2019-09-28 14:33:39 913

原创 CUDA编程指南5.0笔记

最近在学CUDA编程,看的是NVIDIA官方编程指南5.0的中文版。此博客作为自己的一个简单的学习记录,方便后面自己对CUDA的知识进行回顾。1.编程模型1.1内核// 定义内核__global void VecAdd(float* A, float* B, float* c) { int i = threadIdx.x; c[i] = A[i] + B[i];}in...

2019-09-11 22:14:23 2533

原创 Git学习笔记

学习Git的动机最近在做毕业设计,写了一个APP。写完之后各种调试,把代码删了改、改了删,很多重复的劳动。尤其是当你修改了代码,发现整个程序崩了,你想要还原成原来可以运行的代码,却又不记得删了什么东西的时候,绝对是十分令人抓狂的。因此在把这个毕设搞完之后,我决心要好好研究一下Git以及Github,把版本控制这个问题好好地解决掉。Git是啥(作用)Git,官方的解释我就不说了,网上一大...

2019-05-21 01:24:29 151

原创 MySQL逐行递增赋值

今天遇到一个功能,是要在表中对某一列进行递增赋值,后来查了一些资料,这里算是做一个记录吧。主要还是用到SQL中的变量来实现,每赋一次值,变量加1。// 设置一个变量为rset @r:=0;// 使用变量r来更新列中的值,同时r递增UPDATE table_name SET column_name=(@r:=@r+1);...

2019-04-09 16:37:49 1570 1

原创 Android绘制小车移动轨迹——蓝牙通信与SurfaceView实践(2)

概述上一篇博客主要介绍了这个项目的大致情况以及讲解了项目中蓝牙模块的简单使用,本篇博客主要会讲绘制轨迹部分的使用。关于绘制轨迹,我使用的是SurfaceView这个控件,它与普通的View,既有相同点又有不不同点:view在UI线程去更新自己;而SurfaceView则在一个子线程中去更新自己。surfaceView是在一个新起的单独线程中可以重新绘制画面,而View必须在UI的主线程中...

2019-01-13 13:25:00 1116

原创 Android绘制小车移动轨迹——蓝牙通信与SurfaceView实践(1)

之前因为准备考研,所以以前学的很多东西都慢慢忘了,博客也没有时间写。我发现,还是需要将以前学过的知识总结起来,形成一个体系,才不容易忘。因此趁着考完研准备复试的间隙,重新开始写博客,顺带总结一下之前学过的知识,也算是一个整理加总结吧。这个项目的缘由这几天女票有个安卓的课设,而她不打算走技术路线,因此这个重任就交到我这个以前学过安卓开发的人的身上。总体项目概述这个课设其实很简单:一个用单片...

2019-01-11 20:55:07 1323 2

原创 LeetCode——376. Wiggle Subsequence

最近事情有点多,所以中间隔了很长时间没有写leetcode,也就很长时间没有更新博客了,望谅解哈。   今天重新开始写动态规划的题,遇到了一道非常有意思的题,必须要与大家分享一下。   问题描述:A sequence of numbers is called a wiggle sequence if the differences between successive numbers stric

2017-11-24 23:04:43 265

原创 LeetCode——152. Maximum Product Subarray

问题描述:Find the contiguous subarray within an array (containing at least one number) which has the largest product.For example, given the array [2,3,-2,4],the contiguous subarray [2,3] has the largest p

2017-10-26 21:03:33 210

原创 LeetCode——139. Word Break

问题描述:Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be segmented into a space-separated sequence of one or more dictionary words. You may

2017-10-19 13:44:51 281

原创 LeetCode——141. Linked List Cycle && 142. Linked List Cycle II

今天再次推出一套组合题。   首先是:141.Linked List Cycle   问题描述:Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?  题目大致的意思就是给你一个链表,判断它里面是否含有环,有的话返回true,没有的

2017-10-15 01:38:31 227

原创 LeetCode——138. Copy List with Random Pointer

问题描述:A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.Return a deep copy of the list.  这道题大致的意思就是,一个链表,它每一个节点除了一个next引用

2017-10-13 23:18:14 194

原创 LeetCode——124. Binary Tree Maximum Path Sum

问题描述:Given a binary tree, find the maximum path sum.For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-child connections. The

2017-10-13 01:46:29 252

原创 LeetCode——136. Single Number&&137. Single Number II

——Single Number 问题描述:Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it w

2017-10-11 01:09:39 208

原创 LeetCode——128. Longest Consecutive Sequence

最近这段时间偷懒了,嘿嘿,好多天没更新博客了。不行,还是要勤快一点才行。    问题描述:Given an unsorted array of integers, find the length of the longest consecutive elements sequence.For example,Given [100, 4, 200, 1, 3, 2],The longest c

2017-09-28 21:46:24 288

原创 LeetCode——99. Recover Binary Search Tree

问题描述:Two elements of a binary search tree (BST) are swapped by mistake.Recover the tree without changing its structure.Note:A solution using O(n) space is pretty straight forward. Could you devise a c

2017-09-18 16:03:42 448

原创 LeetCode——73. Set Matrix Zeroes

问题描述:Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.Follow up:Did you use extra space?A straight forward solution using O(mn) space is probably a bad ide

2017-09-18 00:08:04 449

原创 LeetCode——72. Edit Distance

问题描述:Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.)You have the following 3 operations permitted on a word:

2017-09-14 21:26:13 311

原创 LeetCode——60. Permutation Sequence

问题描述:The set [1,2,3,…,n] contains a total of n! unique permutations.By listing and labeling all of the permutations in order,We get the following sequence (ie, for n = 3):1、"123"2、"132"3、"213"4、"23

2017-09-14 01:06:23 242

原创 LeetCode——79. Word Search

问题描述:Given a 2D board and a word, find if the word exists in the grid.The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically

2017-09-08 23:29:52 244

原创 LeetCode——111. Minimum Depth of Binary Tree

问题描述:Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).For example:Given binary tree [3,9,20,null,null,15,7], 3 / \9  20 / \ 1

2017-09-06 23:30:39 178

空空如也

空空如也

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

TA关注的人

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