上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 19 下一页
摘要: MindSpore自定义算子中的张量维度问题 当我们使用GPU进行快速运算时,虽然可以用成熟的深度学习框架如MindSpore和PyTorch等进行实现,但其实从速度上来说,最快不过直接使用C/C++的CUDA来实现。也正是因为如此,在MindSpore框架中支持了对CUDA实现的算子的直接调用,只是在格式规范上有一定的要求。本文主要介绍MindSpore调用本地CUDA算子的一些规范化和技巧。 阅读全文
posted @ 2024-03-12 16:31 DECHIN 阅读(439) 评论(0) 推荐(0)
摘要: Python定位函数定义地址 Python众多的第三方库,为我们的日常代码开发带来了极大的便利性,同时在开发过程中也需要注意这样的一个问题:开发的代码中有些命名可能跟第三方库冲突,例如本文介绍的基于MindSpore框架开发的过程中,定义一个本地的Cell类之后,发现本地的函数get_parameters跟Cell类本身的get_parameters冲突,因此可以使用Python的内置函数__code__对冲突函数的地址进行定位,然后进行修改。 阅读全文
posted @ 2024-03-11 15:51 DECHIN 阅读(176) 评论(0) 推荐(0)
摘要: 将MindSpore运行结果输出到log文件 在Linux运行程序时,正确输出和错误输出会分成两条路线分别输出到不同的位置,默认输出是将两者按照顺序分别输出到屏幕上,而我们也可以通过设定将二者按照顺序输出到一个指定的log文件中。同时为了避免受到窗口交互的影响,我们可以使用Linux挂起的方式来运行一个程序,这样我们既不用担心任务被中断,也可以同时不断的通过log文件内容来查看任务的运行情况,还可以通过ps指令来查看任务进程运行的时长等信息。 阅读全文
posted @ 2024-03-11 10:30 DECHIN 阅读(224) 评论(0) 推荐(1)
摘要: CUDA指针数组Kernel函数 继上一篇文章学习使用C++存储一个不规则二维数组之后,这里介绍如何在C语言版的CUDA中实现一个不规则的二维数组。总体的实现思路跟前面一篇文章一样,使用了一个二维的指针数组来存储。其中主要的不同点大概就是在Host和Device之间的内存交互上,需要不断的分配、拷贝和释放内存,最终我们还是用一个CUDA的Kernel函数实现了一个不规则数组的输出。 阅读全文
posted @ 2024-03-07 17:41 DECHIN 阅读(354) 评论(0) 推荐(0)
摘要: C++中的不规则二维数组 本文介绍了一个在C++中保存不定长二维数组的数据结构。在这个结构中,我们使用了一个含有指针和数组长度的结构体,用这样的一个结构体构造一个结构体数组,用于存储每一个不定长的数组。最后可以将这个不定长数组的内存地址赋值给一个结构体指针,那么这个结构体指针中就包含了所有不定长数组所需的内容。类似的使用场景,更多的出现在Python和C++两个不同的语言进行交互的时候,这样操作可以兼具Python的易开发特性和C++的高性能特性。 阅读全文
posted @ 2024-03-06 16:57 DECHIN 阅读(384) 评论(3) 推荐(2)
摘要: 从Python语言的角度看C++的指针 本文主要是站在一个有一定的Python经验的C++新手的角度,学习一下C++中的指针使用方法。指针其实就是一个内存地址的标记,同时在用法上也跟Python中的迭代器很相似,可以通过指针移位来标记下一个需要读取或者更新的位置。通过这一篇文章,可以掌握指针对象的赋值、多重指针的使用和数组指针的使用,以及最后我们介绍了一个基于指针数组来实现的空间格点划分算法。由于是C++初学者,代码质量不高,也可能有更好的实现方式。 阅读全文
posted @ 2024-03-05 10:54 DECHIN 阅读(428) 评论(0) 推荐(2)
摘要: MindSponge分子动力学模拟——使用MDAnalysis工具进行后分析(2024.02) 这篇文章我们主要介绍了MindSponge分子动力学模拟软件如何跟后分析工具MDAnalysis相配合的方法,其主要操作流程就是调用MindSponge自带的CallBack来输出拓扑文件和轨迹文件给MDAnalysis,然后就可以调用MDAnalysis的相关分析函数接口,十分的方便。 阅读全文
posted @ 2024-02-29 16:36 DECHIN 阅读(620) 评论(0) 推荐(1)
摘要: Python3中的“指针” 假如你在Python中初始化了一个变量a的值,然后用a来初始化另一个变量b,此时你希望得到的b的数值是跟a同步变化的,还是独立变化的呢?Python这个编程语言虽然没有指针类型,但是Python中的可变参量也可以像指针一样,改变一个数值之后,所有指向该数值的可变参量都会随之而改变。就比如说改变a的值,会同步的去改变b的值。那么我们应该对这种类型的赋值有所了解,才能够避免在实际的编程中犯错。 阅读全文
posted @ 2024-02-27 11:01 DECHIN 阅读(1137) 评论(0) 推荐(0)
摘要: Python报错symbol lookup error: xxx.so: undefined symbol: cufftxxx解决办法 解决了Python调用CUDA算子的so动态链接库中,无法找到cufft的cufftExecR2C函数的问题。 阅读全文
posted @ 2024-02-26 16:34 DECHIN 阅读(290) 评论(0) 推荐(0)
摘要: MindSponge分子动力学模拟——定义Collective Variables(2024.02) 随着分子动力学模拟技术的应用推广、AI软件的发展和硬件算力水平的提升,我们可以更快的在分子层面去观察和研究分子体系内的相互作用。但是分子模拟的性能再好,也不一定可以复现一些在自然宏观状态下有可能发生的化学反应或者是物质相变。因此我们需要通过定义一些对反应路径有决定性影响的物理量,然后结合增强采样技术,去更快的复现和推导我们所需要的反应机理。本文主要介绍分子动力学模拟软件MindSponge在这一领域的应用和代码实现。 阅读全文
posted @ 2024-02-19 16:15 DECHIN 阅读(388) 评论(0) 推荐(0)
摘要: 关于分子力场中键能项和角能项的思考 本文介绍了在分子力场中经常有可能被使用到的键长和键角项的谐振势模型,并且分别从自动微分的Python代码实现以及解析形式的矢量化编程形式给出了初步的实现方案。虽然力场形式较为简单,但是在实际的计算中,我们统计出来,至少需要21P+28S的计算量,其中P指键的数量,S指键角的数量。这里提到的矢量化计算的实现方案,虽然从计算的角度来说有大量的冗余,但由于一般情况下,一个分子系统单个原子的成键数量都在4以内(比如C原子的sp3杂化),因此矢量化计算的实现方案也不失为一个很好的参考。 阅读全文
posted @ 2024-02-02 16:15 DECHIN 阅读(525) 评论(0) 推荐(1)
摘要: MindSpore导入CUDA算子 本文介绍了在MindSpore标准格式下进行CUDA算子开发的方法和流程,可以让开发者在现有的AI框架下仍然可以调用基于CUDA实现的高性能的算子。并且,除了常规的数值计算之外,在MindSpore框架下,我们还可以通过实现一个bprop函数,使得我们手写的这个CUDA算子也可以使用MindSpore框架本身自带的自动微分-端到端微分技术。 阅读全文
posted @ 2024-01-31 15:29 DECHIN 阅读(503) 评论(0) 推荐(0)
摘要: Linux命令行从x度网盘下载数据 本文介绍了详细的在Linux机器上使用wget命令行下载某度网盘中共享的加密文件,用这种相对低成本的平台来存放一些大文件,相比于免费的Gitee和Github等大型开源管理平台还是要稳定一些。因为可以直接命令行下载,那么就可以直接把下载脚本写到python开源库的setup文件中,便于实现自动化的安装。 阅读全文
posted @ 2024-01-26 17:49 DECHIN 阅读(2124) 评论(0) 推荐(1)
摘要: Julia编程基础 本文介绍了Julia这一主要面向自然科学的编程语言的基本安装与使用,建议读者最好在熟练使用Python的前提下再阅读本文。如果是对Python的语法非常熟悉的人,应该很容易看懂本文并初步掌握Julia的基本语法和使用逻辑。Julia最吸引人的地方在于他简单如Python的语法,但兼具了C++和Fortran的高性能。但是缺点也非常明显,作为一门新的编程语言,受众又少,没有太多的轮子可以用。反过来想,也很适合用来开发一些新的轮子。 阅读全文
posted @ 2024-01-22 19:10 DECHIN 阅读(449) 评论(1) 推荐(1)
摘要: 无法访问Github仓库的极简治标法 Github访问受限,是国内众多IP所经常面临的问题。这里我经过大量的踩坑之后,还是认为使用Gitee将Github的仓库直接同步过来,作为一个私有的镜像,是最便利高效的方法。当然,这个只能满足日常使用第三方库的需求,治标但不治本,对于那些仅仅只是想使用某些Github仓库代码的童鞋来说,也是完全够用了。 阅读全文
posted @ 2024-01-22 11:13 DECHIN 阅读(299) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 19 下一页