You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

task_executor.cpp 1.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /**
  2. * \file dnn/test/cpu/task_executor.cpp
  3. * MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
  4. *
  5. * Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
  6. *
  7. * Unless required by applicable law or agreed to in writing,
  8. * software distributed under the License is distributed on an
  9. * "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. */
  11. #include "src/naive/handle.h"
  12. #include "test/common/utils.h"
  13. #include "test/cpu/fixture.h"
  14. using namespace megdnn;
  15. using namespace test;
  16. TEST_F(CPU_MULTI_THREADS, THREAD_POOL) {
  17. auto single_thread_handle = create_cpu_handle(0);
  18. std::vector<int> data(100, 0);
  19. std::vector<int> result_singel_thread(100);
  20. std::vector<int> result_multi_thread(100);
  21. for (int i = 0; i < 100; i++) {
  22. data[i] = i;
  23. }
  24. auto single_run = [&data, &result_singel_thread]() {
  25. for (int i = 0; i < 100; i++) {
  26. result_singel_thread[i] = data[i];
  27. }
  28. };
  29. auto multi_thread_run = [&data, &result_multi_thread](size_t index,
  30. size_t) {
  31. for (size_t i = index * 5; i < (index + 1) * 5; i++) {
  32. result_multi_thread[i] = data[i];
  33. }
  34. };
  35. MEGDNN_DISPATCH_CPU_KERN(
  36. static_cast<naive::HandleImpl*>(single_thread_handle.get()),
  37. single_run());
  38. MEGDNN_DISPATCH_MULTI_THREAD_CPU_KERN(
  39. static_cast<naive::HandleImpl*>(handle()), 20, multi_thread_run);
  40. for (int i = 0; i < 100; i++) {
  41. ASSERT_EQ(result_singel_thread[i], result_multi_thread[i]);
  42. }
  43. }
  44. // vim: syntax=cpp.doxygen

MegEngine 安装包中集成了使用 GPU 运行代码所需的 CUDA 环境,不用区分 CPU 和 GPU 版。 如果想要运行 GPU 程序,请确保机器本身配有 GPU 硬件设备并安装好驱动。 如果你想体验在云端 GPU 算力平台进行深度学习开发的感觉,欢迎访问 MegStudio 平台