最近在测试一个T4 gpu执行性能的问题,通过nvidia-smi来对显卡的运行效率和状态进行收集和统计。
在使用的过程中发现,该工具不同参数下对性能的影响不同。负载情况如下图。
任务为20个720p 15fps的视频转码+推理任务。相当于每秒钟执行4500次解码+4500次编码+4500次推理。
在执行nvidia-smi dmon时,发现性能影响很小;执行nvidia-smi pmon时,性能影响相对明显。
由于没有找到比较详细的信息和解释,初步推测和性能采样有关。pmon模式下,需要对每个进程做采样,会降低一些执行性能。
在用户角度来看,linux有两种信号量,system v和posix两种。
之前由于需要快速开发出东西来,就随便选了一个信号量来使用,后来才发现是system v,在使用过程中也遇到了一些坑。
sem_key_ = ftok(“file_exist”, 'a');
int flag = 0666;
flag |= IPC_CREAT;
sem_id_ = semget(sem_key_, 1, flag);
if (-1 == sem_id_) {
std::cout << "semaphore create failed" << std::endl;
return;
}
union semun sem_union;
sem_union.val = 1;
if (semctl(sem_id_, 0, SETVAL, sem_union) == -1) {
std::cout << "semaphore semctl failed" << std::endl;
return;
}
这里需要注意的是,ftok的第一个传入函数必须要某个存在的文件,因为需要通过具体的文件,去访问对应的nodeid,并做hash值。如果文件不存在,那么返回值将会是-1。
在安装linux的时候,如果选择了lvm文件系统,当某个特定分区文件不够用的时候,直接通过resize即可实现在线动态扩容分区。
但由于当时为了减少一些开销,并没有使用lvm作为中间管理器,直接使用物理磁盘的分区。
debian是运行在vmware中,对于磁盘扩容比较简单,只需要进行配置一下,磁盘大小即可进行快速伸缩。
设置好vmware磁盘后,进入linux后执行fdisk -l检查硬盘大小,已经生效。
可以看到磁盘总大小200g,sda1+sda2还保持在75g。这时候执行apt install gparted后运行分区工具。
这时候先禁用swap分区,并删除swap对应的逻辑分区,接着执行修改sda1分区大小。
设置成需要的分区大小之后,在对剩余的空间执行创建对应的swap分区。然后执行mkswap /dev/sda5,查看swap分区的uuid。
执行nano /etc/fstab,修改对应的swap分区uuid,重启后即可。
公司大佬用cudnn写了一个推理库,用于做背景分割。新到一台用于做测试的服务器,但sre和it都不管我,而我又是集成这个cudnn的人。所以只能自己亲自上,淡然还有大佬的帮助下成功安装了系统和驱动。
准备工作,一个新安装的ubuntu server 18。
下载好驱动、cuda、cudnn、tensorrt:
NVIDIA-Linux-x86_64-418.165.02.run
cuda-repo-ubuntu1804-10-1-local-10.1.243-418.87.00_1.0-1_amd64.deb
cuda-ubuntu1804.pin
libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb
libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb
nv-tensorrt-repo-ubuntu1804-cuda10.1-trt6.0.1.5-ga-20190913_1-1_amd64.deb
其中需要注意的是,除了显卡驱动,其他部分都要下deb包,否则会出现打不上的情况。
然后按照教程的路线,执行dkpg -i和api install就好
首先提一下葫芦七兄弟这个标题的缘由,因为在2020年4月,本人换了一个工作,进入了某A公司(不是不爱钱的那人开的公司);这个公司在现阶段是在线实时音视频做的还不错的一家,无论知名度还是市场占有率,都确实到了一定高度。
选择这家公司的原因其实也蛮简单的,主要是想通过公司的平台,对自身的技术有个提高和成长。加入公司以后却看到的不是成长和学习,而是首当其冲的就是被拉去支援隔壁大部门的工作,接着就是被各种神仙之间掐架时候的各种有意无意的误伤(说白了就是拿我指桑骂槐)。
显然透过这样的工作体验是奇差无比的,况且这里面也感到了一丝丝各种奇奇怪怪的工作氛围。
入职到今天,已经经过了9个月了。最近听到隔壁部门在做一些人员架构上的变动,听到这个消息的时候,实际上心里是有些不太舒服的。原因是隔壁组的老大要换,而过来的老大就是当初就是“恶心”过我的人。
书归正传,为何会写这个东西?
还是相对自己目前的工作状态和心里状态做一个回顾和梳理,避免一而再再而三的出现问题,反反复复的出错。同时也便于做一些及时的心态调整和变化。其目的还是为了减少这些糟心事对自己的影响,也可以适当的让自己有机会和精力朝着自己的目标去进行。
为何这样取名?
因为组里有7个人,而这7个人各有所长,也各有自己的性格特点。所以叫葫芦七兄弟比较贴切和理想。
这七个人是什么样的特点?
在我心里,这7个人的特点:
老大,有自己的想法和目标,也有一定的能力,思维活络。但也许由于一些原因,又或许自身的性格特点,自己很少做一些团队工作方面的输出。或者说,在我眼里,在一些团队带领方面没有体现出管理者应有的素养(实际上很多管理者都没有)。我的新员工导师,导师这块我觉得还缺少了一些工作方面的引导(代码)。 老二,年纪不大90后。不太爱多说,性格特点比较主观,有一定自我或自负的情况,不通融,不豁达。工作技能有一些比我强的地方,但可能由于一些因素,或自身自负的原因,似乎并不以为然。 老三,年纪应该很大(应该是70后),似乎是做编解码出身的。起初打交道的时候,感觉还不错,能够提出一些正向且积极的意见和建议,但细细接触后发现,做事情有点拖沓,人水平不错。如果人能放下一些身段,踏实一些,不管是技术之路,还是管理之路,我相信都会不错很多。加上确实技术上有一定水平,我会很乐意找他做我的老师。 老四,我。脾气大,不喜欢得罪人,但也不是什么老好人类型;不愿意直接面对工作上的矛盾;同时是一个说话“啰嗦”的人(这里面分为有真的啰嗦成分,也有别人有意或无意找的接口!)。技术功底一般,技术技能比较杂,不想一直这样杂下去,想沉淀某种技术。对目前团队信任感缺失,不太想发言,或者说在等待能够把自身感兴趣的技术做下去做深的机会。 老五,其实老五和老六是同一天入职的。但后来听说老五本来也应该是4月份日志的,所以就区分开两个人了。老五是某不爱钱老板开的公司出来的,起初感觉还挺不错的,但后续不晓得是不是什么原因还是怎么的,总感觉老五做事会有几分此地无银三百两的情况;所以当时还在对老五做了一些留意和观察,对他还是尽量抱着友善的态度,但持续保持适当的距离。据说以前是做android media framework移植裁剪和维护等(搞android os里面),人技术应该挺不错的,但给我感觉做事目的性太强了,我有点怵,所以敬而远之。 老六,人其实挺不错的小伙的。就是给人感觉太爱表现了,说话做事有很多时候很喜欢信口开河,对技术了解不深不扎实的情况下,也会随便说出来。人本身也许没有太多坏心眼,但是太急躁没什么好处,有时其实我也挺烦和他打交道的,说话给人感觉很喜欢瞎指挥,太把自己当回事的情况,而且影响别人的工作效率;夹带私货(心)的时候有点多,成分也有点明显。有几次我真的忍不了,搞不懂他到底想要干什么,如果技术top1的话到还没啥好说的,关键是没到这个水准,做事的那股样子给人就一个大佬的错觉样,确实很难受。有很多时候,我并不想和这种人打交道,因为提高太少了。 老七,刚来。目前看上去还是挺谈得来的样子。和老大在同一个办公地点,最近活跃度降低了不少,预计身上事情在变多了。或者其他原因,后续再看。
今天先写道这里了,下一篇,我想重点写一写七兄弟,我对他们六个人的看法和感受,以及我所了解到他们可能对我的看法或感受。