RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-667898

Stannum chemistry's questions

Martin Hope
Stannum chemistry
Asked: 2025-03-03 05:19:59 +0000 UTC

cudaSetDevice 不起作用,数组返回未初始化的值

  • 4

最近开始学习 cuda c,了解了 cudaSetDevice 函数并决定测试它

#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <iostream>
#include <stdio.h>


const int choses = 1;

__global__ void func(int* a,const int choses = 0)
{
    a[blockIdx.x + choses] = 1;
}





int main()
{

    int* a;
    int* a_cpu = new int[2];
    cudaMalloc((void**)&a, 2 * sizeof(int));

    while (true)
    {
        cudaSetDevice(0);
        func <<<1, 1 >>> (a);
        
        cudaSetDevice(1);
        func <<<1, 1 >>> (a, choses);

        cudaMemcpy(a_cpu, a, 2 * sizeof(int), cudaMemcpyDeviceToHost);
        std::cout << a_cpu[0] << "  ";
        std::cout << a_cpu[1] << "\n";
    }
}

该程序采用 2 个数字组成的数组并不断对它们求和,每个元素由其自己的视频卡求和,然后将数据复制到 CPU 变量中,但由于某种原因,程序报告数组元素未初始化

在此处输入图片描述

PS 没有 cudaSetDevice() 一切正常。

c++
  • 1 个回答
  • 35 Views
Martin Hope
Stannum chemistry
Asked: 2025-01-02 02:32:16 +0000 UTC

该函数不接受图像链接

  • 4
#include <iostream>
#include "time.h"
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <stdio.h>
#include <string>
#include <experimental/filesystem>
#include <fstream>
#define STB_IMAGE_IMPLEMENTATION
#include "C:\Users\tpog\Documents\liberylis\stb_image.h"



__global__ void zrenie(int* itog_voz,unsigned char* data_gpu)
{
    itog_voz[blockIdx.x] += data_gpu[blockIdx.x]/10;
}

namespace fs = std::experimental::filesystem;



std::string wstring_to_utf8(const std::wstring& str)
{
    std::wstring_convert<std::codecvt_utf8<wchar_t>> myconv;    
    std::string string = myconv.to_bytes(str);
    return string;
}


int main(void)
{
    cudaSetDevice(4);
    std::vector<std::wstring> fileList;
    for (const fs::path& it : fs::directory_iterator("C:\\Users\\tpog\\Documents\\images")) {
        if (fs::is_regular_file(it) && (it.extension() == ".png")) {
            fileList.emplace_back(it.c_str());
        }
    }
    std::cout << wstring_to_utf8(fileList[4]);


    const char* string = wstring_to_utf8(fileList[4]).c_str();
    int w = 1200, h = 800;
    unsigned char* data = stbi_load("C:\\Users\\tpog\\Documents\\images\\picture_(1).png", &w, &h, nullptr, 3); // если написать 4 - загрузит с прозрачностью
    
    unsigned char* data_gpu;
    cudaMalloc((void**)&data_gpu, 3 * h * w * sizeof(char));
    printf("%i", data[3 * (1) + 0]);
    printf("%i ", data[3 * (1) + 1]);
    printf("%i ", data[3 * (1) + 2]);
    std::cout << clock();
    cudaMemcpy(data_gpu, data, 3 * h * w * sizeof(char), cudaMemcpyHostToDevice);
    //zrenie <<<w * h * 3, 1 >>>(data_gpu);
    stbi_image_free(data);
    cudaFree(data_gpu);


}

该函数 stbi_load("C:\\Users\\tpog\\Documents\\images\\picture_(1).png", &w, &h, nullptr, 3);接收图像地址,然后对其进行处理。问题是,当我显式编写链接(而不是字符串变量)时,即 C:\Users\tpog\Documents\images\picture_(1).png,那么一切正常,但是一旦我保存链接到一个变量并通过它,然后突然一切都停止工作,并且没有错误发生,代码成功完成,但是第 49, 50, 51 行,应该打印像素颜色,不打印任何东西

未明确指定链接时的输出 在此输入图像描述

显式指定链接时的输出

在此输入图像描述

c++
  • 1 个回答
  • 20 Views
Martin Hope
Stannum chemistry
Asked: 2024-12-24 22:20:41 +0000 UTC

如何用 C++ 从网络摄像头拍摄照片并保存[关闭]

  • 3
关闭。这个问题需要澄清或者补充细节。目前不接受对此问题的答复。

想要改进这个问题吗?通过编辑这篇文章添加更多详细信息并澄清问题。

6 天前关闭。

改进问题

您需要从网络摄像头拍摄照片并保存

c++
  • 1 个回答
  • 48 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5