摘要:一、简介 在C语言中常使用srand()+random()的方式生成随机数,该方式并不是一个很好的随据说生成方法,一方面是因为其生成的随机数质量较低,另一方面其随机数范围也有所限制。在C++11中推荐使用随机数引擎的方式生成随机数。 如何高效得生成高质量得随机数(甚至需要满足指定分布)是一个复杂的问
阅读全文
摘要:一、简介 本文介绍了在vscode中使用cmake工具时,如何传递参数给编译目标的方法。 前提:使用vscode+cmake编译C/C++程序。 二、方法 在.vscode/目录下新建settings.json文件,并将待传底的参数写在 cmake.debugConfig里。 下面介绍了一个示例,将
阅读全文
摘要:一、简介 工作中常需要在linux环境下使用shell脚本自动化运行多条命令,在顺序执行多条命令时,需要在前一条命令运行失败时立刻结束脚本,停止运行接下来的其他命令。 本文介绍了三种实现该目标的方法,分别是:使用&&命令执行控制符,使用set -e设置shell options和使用trap 'do
阅读全文
摘要:一、简介 本文介绍了如何使用thrust::sort()函数对device_vector<int>容器,或者int*指针表示的内存(显存)处的数据进行排序。 二、示例代码 1. 排序 device_vector<int>中的数据 main.cu文件内容: #include <iostream> #i
阅读全文
摘要:一、简介 本文介绍了如何在C++中,根据编译类型的不同(Debug或者Release)规定代码执行不同的行为,使用 NDEBUG宏实现该目标。 二、代码示例 main.cpp文件代码: #include <iostream> #if NDEBUG void fun() { std::cout <<
阅读全文
摘要:一、简介 有时我们需要在host和device端实现同样的一个函数。 一个简单的方法是分别在host和device端上实现两个同名函数,例如fun_host()和fun_device(),在host和device上分别使用不同的函数。 另一种方法只使用一个函数fun(),在编译时根据运行目标的不同选
阅读全文
摘要:一、简介 本文介绍了两种在C++代码中统计耗时的方法,第一种使用<time.h>头文件中的clock()函数记录时间戳,统计程序耗时。第二种使用<chrono>头文件中的std::chrono::high_resolution_clock()::now()函数,后者可以方便地统计不同时间单位下的程序
阅读全文