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.

eye.cpp 1.6 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /**
  2. * \file dnn/test/rocm/eye.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 "hcc_detail/hcc_defs_prologue.h"
  12. #include "test/rocm/fixture.h"
  13. #include "megdnn/oprs.h"
  14. #include "test/common/checker.h"
  15. #include "test/rocm/benchmarker.h"
  16. namespace megdnn {
  17. namespace test {
  18. TEST_F(ROCM, EYE)
  19. {
  20. Checker<Eye> checker(handle_rocm());
  21. for (DType dtype: std::vector<DType>{
  22. DNN_INC_FLOAT16(dtype::Float16() MEGDNN_COMMA) dtype::Int32(), dtype::Float32()})
  23. for (int k = -20; k < 20; ++k) {
  24. checker.set_param({k, dtype.enumv()});
  25. checker.set_dtype(0, dtype);
  26. checker.exec(TensorShapeArray{{3, 4}});
  27. checker.exec(TensorShapeArray{{4, 3}});
  28. }
  29. }
  30. TEST_F(ROCM, EYE_BENCHMARK) {
  31. auto benchmarker = ROCMBenchmarker<Eye>(handle_rocm(), handle_naive(false));
  32. benchmarker.set_display(true);
  33. benchmarker.set_param({10240, dtype::Float32().enumv()});
  34. benchmarker.set_dtype(0, dtype::Float32());
  35. auto time_ms = benchmarker.execs({{10000, 10000}});
  36. float io = 10000 * 10000 * dtype::Float32().size();
  37. printf("io = %.3f GB, bandwidth = %.3f GB/s\n", io / 1e9,
  38. io / (1e6 * time_ms));
  39. }
  40. } // namespace test
  41. } // namespace megdnn
  42. // vim: syntax=cpp.doxygen foldmethod=marker foldmarker=f{{{,f}}}

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