小编Boj*_*eng的帖子

Github Action:将长命令拆分为多行

我有一个非常长的 Github 操作命令:

name: build

on: [push]

jobs:
    build:
        runs-on: ubuntu-18.04
        steps:
            - uses: actions/checkout@v1
            - name: Install Prerequisites
              run: |
                sudo apt-get update
                sudo apt-get install -y --no-install-recommends "a very very long list of prerequisites"
Run Code Online (Sandbox Code Playgroud)

我可以知道是否可以将长命令分成多行以提高可读性?我试过分隔符 '\' 但它不起作用。提前致谢。

yaml github github-actions

55
推荐指数
5
解决办法
2万
查看次数

cudaEventSynchronize 与 cudaDeviceSynchronize

我是 CUDA 的新手,对cudaEvent. 我现在有一个代码示例,如下所示:

float elapsedTime; 
cudaEvent_t start, stop;
CUDA_ERR_CHECK(cudaEventCreate(&start));
CUDA_ERR_CHECK(cudaEventCreate(&stop));

CUDA_ERR_CHECK(cudaEventRecord(start));

// Kernel functions go here ...

CUDA_ERR_CHECK(cudaEventRecord(stop));
CUDA_ERR_CHECK(cudaEventSynchronize(stop));
CUDA_ERR_CHECK(cudaEventElapsedTime(&elapsedTime, start, stop));

CUDA_ERR_CHECK(cudaDeviceSynchronize());
Run Code Online (Sandbox Code Playgroud)

我对这段代码有两个问题:

1.最后一个cudaDeviceSynchronize有必要吗?因为根据 的文档cudaEventSynchronize,其功能是等待直到最近一次调用之前的所有设备工作完成cudaEventRecord()。既然我们已经打电话了cudaEventSynchronize(stop),还需要再打电话吗cudaDeviceSynchronize

2.上面的代码与下面的实现相比有什么不同:

#include <chrono>

auto tic = std::chrono::system_clock::now();

// Kernel functions go here ...

CUDA_ERR_CHECK(cudaDeviceSynchronize());
auto toc = std::chrono::system_clock:now();

float elapsedTime = std::chrono::duration_cast < std::chrono::milliseconds > (toc - tic).count() * 1.0;
Run Code Online (Sandbox Code Playgroud)

cuda cuda-events

6
推荐指数
1
解决办法
6698
查看次数

Docker 和 Makefile 构建

我希望用来Dockerfile从源代码构建一个相当大的代码库。源代码是用 C++ 编写的,构建系统是用Makefile编写的。目前我的Dockerfile情况如下:

FROM ubuntu:16.04

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        vim g++ make && \
    rm -rf /var/lib/apt/lists/*

COPY src /src # `src` folder contains the source code
WORKDIR /src
RUN make && make all
Run Code Online (Sandbox Code Playgroud)

我对此主要担心的Dockerfile是 - 假设稍后当我修改大型代码库的一小部分并重新执行命令时docker build,会发生以下哪种情况?

  1. Docker 再次进行复制并找出make.
  2. Docker 不执行任何操作,因为Dockerfile尚未更改。
  3. Docker 从一开始就构建了整个代码库。

如果发生第二个或第三个,是否有比将make命令放在 ? 中更好的选择Dockerfile?我应该将其作为 Docker 容器的一部分执行docker run并将源代码目录挂载到 Docker 容器上吗?

谢谢。

docker

6
推荐指数
1
解决办法
8658
查看次数

Tensorboard:从命令行导出CSV文件

有人可以告诉我是否Tensorboard支持从命令行导出CSV文件?我问这个的原因是因为我有很多日志目录,我希望有一个脚本文件来自动化该过程.谢谢.

tensorflow tensorboard

5
推荐指数
1
解决办法
258
查看次数

如何将函数指针转换为函数名?

我现在有一系列具有相同功能的函数,

func_pointer_t func_array[] = {func_1, func_2, func_3, ...};
Run Code Online (Sandbox Code Playgroud)

我想开发一个遍历所有数组成员的程序,并将输出转储到另一个.dat数据文件.输出应具有以下格式:

func_1 func_1_output
func_2 func_2_output
func_3 func_3_output
...
Run Code Online (Sandbox Code Playgroud)

所以我的问题是 - 当遍历数组成员时,我们怎么能让程序知道函数指针指向哪个函数名(例如func_array [0]指向func_1)?

c++

1
推荐指数
1
解决办法
1912
查看次数

Git:使用相同的消息自动提交子模块

我有一个工作项目如下:

project/
  .git/
  .gitmodules
  submodule/  # submodule is a git submodule
Run Code Online (Sandbox Code Playgroud)

我希望,每当我在子模块中进行提交时。父模块将使用相同的提交消息project进行提交。submodule我尝试使用commit-msg钩子来实现这个:

#!/bin/bash
# project/.git/modules/submodule/hooks/commit-msg
cd $(dirname ${BASH_SOURCE[0]})/../../../..
git commit submodule -m "$(cat $1)"
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为我收到错误消息“错误:pathspec '子模块'与 git 已知的任何文件不匹配”。原因似乎是因为git commit命令也会调用commit-msg钩子,导致递归调用。

我可以知道我应该如何正确地执行此操作吗?

git github

1
推荐指数
1
解决办法
356
查看次数

标签 统计

github ×2

c++ ×1

cuda ×1

cuda-events ×1

docker ×1

git ×1

github-actions ×1

tensorboard ×1

tensorflow ×1

yaml ×1