上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 20 下一页
摘要: 本文通过一个实际的散点图案例,展示了如何使用pyqt5嵌套一个pyecharts图层的方法,通过这个技巧,可以在pyqt5的框架中也实现精美的数据可视化的功能模块。 阅读全文
posted @ 2022-01-15 23:27 DECHIN 阅读(2724) 评论(0) 推荐(0)
摘要: 在深度学习或者其他类型的GPU运算过程中,对于GPU信息的监测也是一个非常常用的功能。如果仅仅是使用系统级的GPU监测工具,就没办法非常细致的去跟踪每一步的显存和使用率的变化。如果是用profiler,又显得过于细致,而且环境配置、信息输出和筛选并不是很方便。此时就可以考虑使用py3nvml这样的工具,针对于GPU任务执行的过程进行细化的分析,有助于提升GPU的利用率和程序执行的性能。 阅读全文
posted @ 2022-01-13 11:01 DECHIN 阅读(1357) 评论(0) 推荐(0)
摘要: 本文是第一篇关于JAX-MD的源码学习的文章,主要关注点在于JAX-MD中对于近邻表的检索和优化。本文的主要内容是其中构建CellList的部分,通过打格点的方法可以大大降低近邻表搜索算法的复杂度,在GPU计算的过程中更是可以极大的降低显存的占用,从而允许我们去运行更大规模的体系。 阅读全文
posted @ 2022-01-04 16:11 DECHIN 阅读(770) 评论(0) 推荐(0)
摘要: 在使用一些python的GPU模块,或者写CUDA时,有时会发现显存被无端占用的场景,即时执行了cudaFree()或者python的del操作,也无法消除这一块的显存占用。最终我们发现,可以通过额外开启一个子进程的方法来封装相关的操作,通过对进程的存活控制来实现对GPU显存占用的控制,有可能是一个临时规避问题的思路。 阅读全文
posted @ 2021-12-14 17:16 DECHIN 阅读(4042) 评论(4) 推荐(1)
摘要: 关于工业领域中可能使用到的随机采样,更多的是这样的一个场景:给定一个连续或者离散的分布,然后进行大规模的连续采样,采样的同时需要对每一个得到的样点进行分析打分,最终在这大规模的采样过程中,有可能被使用到的样品可能只有其中的几份。那么这样的一个抽象问题,就非常适合使用分布式的多GPU硬件架构来实现。 阅读全文
posted @ 2021-12-09 10:23 DECHIN 阅读(508) 评论(0) 推荐(0)
摘要: 在这篇文章中,我们并没有介绍非常多的MPI的应用,其实在普通的并行或者分布式任务中,掌握了各个进程的任务处理过程以及进程间的通信方法就足够了。总体来说,MPI是一个非常通用也非常高效的并行计算软件。有了这些专业的并行化任务调度软件,我们就可以专注于专业任务的代码和算法上,而不需要过多的去关注并行任务的调度和分配问题。 阅读全文
posted @ 2021-12-02 17:45 DECHIN 阅读(5415) 评论(0) 推荐(0)
摘要: 本文通过对比Jax和Numpy计算Normalized Hamming Distance的过程来对比了Jax所实现的Numpy的GPU版本所带来的加速效果。实际上在维度比较小的时候,Numpy还是有非常轻量级的优势,此时GPU的加速效果并没有很好的体现出来。但是在规模较大的输入场景下,GPU的并行加速效果简直无敌,而且几乎没有改动原本Numpy的函数接口。除此之外,Jax作为一个函数式编程的端到端可微编程框架,支持jit、vmap、pmap和xmap等非常神奇的加速和并行化功能,为深度学习等领域提供了非常强有力的支持。 阅读全文
posted @ 2021-11-05 17:01 DECHIN 阅读(440) 评论(0) 推荐(0)
摘要: 在近期conda的版本更新中,有可能会删除路径下的_sysconfigdata_x86_64_conda_linux_gnu模块相关备份文件,而在其他的一些软件的运行过程中有可能依赖于这个备份文件,这就会导致运行过程报错模块无法找到的问题。最终我们通过重新复制备份这个文件解决了该问题。 阅读全文
posted @ 2021-10-27 09:46 DECHIN 阅读(6098) 评论(0) 推荐(0)
摘要: VMD是一个分子动力学模拟领域常用的可视化软件,hdf5是量子化学领域常用的一个二进制文件存储格式,本文通过介绍VMD-h5mdplugin这个插件的安装和使用方法,进一步演示了如何在VMD上直接展示hdf5格式文件的分子构象。 阅读全文
posted @ 2021-10-26 17:40 DECHIN 阅读(798) 评论(1) 推荐(0)
摘要: 在这篇文章中,我们主要介绍了打格点算法在分子动力学模拟中的重要价值,以及几种不同的实现方式。其中最普通的for循环的实现效率比较低下,从算法复杂度上来讲却已经是极致。而基于CPU上的向量化运算的技术,可以对计算过程进行非常深度的优化。当然,这个案例在不同的硬件上也能够发挥出明显不同的加速效果,在GPU的加持之下,可以获得100倍以上的加速效果。这也是一个在Python上实现GPU加速算法的一个典型案例。 阅读全文
posted @ 2021-09-08 17:50 DECHIN 阅读(939) 评论(0) 推荐(1)
摘要: 我们知道GPU加速在可并行化程度比较高的算法中,能够发挥出比较大的作用,展示出明显的加速效果,而对于一些线程之间存在依赖这样的场景就不一定能够起到很大的加速作用。CUDA官方针对此类问题,提供了atomic的内置函数解决方案,包含有求和、求最大值等常用函数。而这些函数的特点就在于,线程与线程之间需要有一个时序的依赖关系。就比如说求最大值的函数,它会涉及到不同线程之间的轮询。经过测试,CUDA的这种atomic的方案,实现起来非常方便,性能也很乐观,相比于自己动手实现一个不断切割、递归的规约函数,还是要容易快捷的多。 阅读全文
posted @ 2021-09-01 16:28 DECHIN 阅读(939) 评论(0) 推荐(0)
摘要: 本文针对于Python中使用Numba的GPU加速程序的一些基本概念和实现的方法,比如GPU中的线程和模块的概念,以及给出了一个矢量加法的代码案例,进一步说明了GPU加速的效果。需要注意的是,由于Python中的Numba实现是一种即时编译的技术,因此第一次运算时的时间会明显较长,所以我们一般说GPU加速是指从第二步开始的运行时间。对于一些工业和学界常见的场景,比如分子动力学模拟中的系统演化,或者是深度学习与量子计算中的参数优化,都是相同维度参数多步运算的一个过程,非常适合使用即时编译的技术,配合以GPU高度并行化的加速效果,能够在实际工业和学术界的各种场景下发挥巨大的作用。 阅读全文
posted @ 2021-08-31 16:09 DECHIN 阅读(7883) 评论(7) 推荐(0)
摘要: 对于Pythoner而言,苦其性能已久。如果能够用一种非常Pythonic的方法来实现GPU的加速效果,对于Pythoner而言无疑是巨大的好消息,Numba就为我们提供了这样的一个基础功能。本文通过一个近邻表计算的案例,给出了适用于GPU加速的计算场景。这种计算场景可并行化的程度较高,而且函数会被多次用到(在分子动力学模拟的过程中,每一个step都会调用到这个函数),因此这是一种最典型的、最适用于GPU加速场景的案例。 阅读全文
posted @ 2021-08-31 09:49 DECHIN 阅读(2257) 评论(0) 推荐(2)
摘要: Numpy这个库在Python编程中非常的常用,不仅在性能上补足了Python语言的一些固有缺陷,还具有无与伦比的强大生态。但是即使都是使用Python,Numpy也未必就达到了性能的巅峰,对于我们自己日常中使用到的一些计算的场景,针对性的使用CUDA的功能来进行GPU的优化,是可以达到比Numpy更高的性能的。 阅读全文
posted @ 2021-08-24 17:40 DECHIN 阅读(3688) 评论(2) 推荐(0)
摘要: 本文主要通过介绍两个python中常用的编码规范格式化工具:autopep8和black来讲解python编程中一些快速处理编程规范问题的方法,同时也说明了这些软件的局限性。编程规范也是人为制定的,事实上在实际项目中,也不是所有的编程规范都需要满足,这就需要项目的组织者或者领导者有自己的基本判断。结合代码规范检查工具flake8以及文章中介绍的这些代码规范格式化工具,最重要的还是要配合以人的判断和调整,才能使得项目具有更好的可读性、可维护性以及更友善的生态。 阅读全文
posted @ 2021-08-23 16:04 DECHIN 阅读(1390) 评论(0) 推荐(0)
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 20 下一页