cumo 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.rubocop.yml +15 -0
  4. data/.rubocop_todo.yml +1272 -0
  5. data/3rd_party/mkmf-cu/Gemfile +2 -0
  6. data/3rd_party/mkmf-cu/Rakefile +2 -1
  7. data/3rd_party/mkmf-cu/bin/mkmf-cu-nvcc +2 -0
  8. data/3rd_party/mkmf-cu/lib/mkmf-cu/cli.rb +36 -7
  9. data/3rd_party/mkmf-cu/lib/mkmf-cu/nvcc.rb +51 -45
  10. data/3rd_party/mkmf-cu/lib/mkmf-cu.rb +2 -0
  11. data/3rd_party/mkmf-cu/mkmf-cu.gemspec +3 -1
  12. data/3rd_party/mkmf-cu/test/test_mkmf-cu.rb +5 -3
  13. data/CHANGELOG.md +76 -1
  14. data/Gemfile +6 -1
  15. data/README.md +2 -10
  16. data/Rakefile +8 -11
  17. data/bench/broadcast_fp32.rb +28 -26
  18. data/bench/cumo_bench.rb +18 -16
  19. data/bench/numo_bench.rb +18 -16
  20. data/bench/reduction_fp32.rb +14 -12
  21. data/bin/console +1 -0
  22. data/cumo.gemspec +5 -8
  23. data/ext/cumo/cuda/cudnn.c +2 -2
  24. data/ext/cumo/cumo.c +7 -3
  25. data/ext/cumo/depend.erb +15 -13
  26. data/ext/cumo/extconf.rb +32 -46
  27. data/ext/cumo/include/cumo/cuda/cudnn.h +3 -1
  28. data/ext/cumo/include/cumo/intern.h +1 -0
  29. data/ext/cumo/include/cumo/narray.h +13 -1
  30. data/ext/cumo/include/cumo/template.h +2 -4
  31. data/ext/cumo/include/cumo/types/complex_macro.h +1 -1
  32. data/ext/cumo/include/cumo/types/float_macro.h +2 -2
  33. data/ext/cumo/include/cumo/types/xint_macro.h +3 -2
  34. data/ext/cumo/include/cumo.h +2 -2
  35. data/ext/cumo/narray/array.c +3 -3
  36. data/ext/cumo/narray/data.c +23 -2
  37. data/ext/cumo/narray/gen/cogen.rb +8 -7
  38. data/ext/cumo/narray/gen/cogen_kernel.rb +8 -7
  39. data/ext/cumo/narray/gen/def/bit.rb +3 -1
  40. data/ext/cumo/narray/gen/def/dcomplex.rb +2 -0
  41. data/ext/cumo/narray/gen/def/dfloat.rb +2 -0
  42. data/ext/cumo/narray/gen/def/int16.rb +2 -0
  43. data/ext/cumo/narray/gen/def/int32.rb +2 -0
  44. data/ext/cumo/narray/gen/def/int64.rb +2 -0
  45. data/ext/cumo/narray/gen/def/int8.rb +2 -0
  46. data/ext/cumo/narray/gen/def/robject.rb +2 -0
  47. data/ext/cumo/narray/gen/def/scomplex.rb +2 -0
  48. data/ext/cumo/narray/gen/def/sfloat.rb +2 -0
  49. data/ext/cumo/narray/gen/def/uint16.rb +2 -0
  50. data/ext/cumo/narray/gen/def/uint32.rb +2 -0
  51. data/ext/cumo/narray/gen/def/uint64.rb +2 -0
  52. data/ext/cumo/narray/gen/def/uint8.rb +2 -0
  53. data/ext/cumo/narray/gen/erbln.rb +9 -7
  54. data/ext/cumo/narray/gen/erbpp2.rb +26 -24
  55. data/ext/cumo/narray/gen/narray_def.rb +13 -11
  56. data/ext/cumo/narray/gen/spec.rb +58 -55
  57. data/ext/cumo/narray/gen/tmpl/accum_index.c +8 -3
  58. data/ext/cumo/narray/gen/tmpl/alloc_func.c +1 -1
  59. data/ext/cumo/narray/gen/tmpl/at.c +34 -0
  60. data/ext/cumo/narray/gen/tmpl/batch_norm.c +1 -1
  61. data/ext/cumo/narray/gen/tmpl/batch_norm_backward.c +2 -2
  62. data/ext/cumo/narray/gen/tmpl/conv.c +1 -1
  63. data/ext/cumo/narray/gen/tmpl/conv_grad_w.c +3 -1
  64. data/ext/cumo/narray/gen/tmpl/conv_transpose.c +1 -1
  65. data/ext/cumo/narray/gen/tmpl/fixed_batch_norm.c +1 -1
  66. data/ext/cumo/narray/gen/tmpl/init_class.c +1 -0
  67. data/ext/cumo/narray/gen/tmpl/pooling_backward.c +1 -1
  68. data/ext/cumo/narray/gen/tmpl/pooling_forward.c +1 -1
  69. data/ext/cumo/narray/gen/tmpl/qsort.c +1 -5
  70. data/ext/cumo/narray/gen/tmpl/sort.c +1 -1
  71. data/ext/cumo/narray/gen/tmpl_bit/binary.c +42 -14
  72. data/ext/cumo/narray/gen/tmpl_bit/bit_count.c +5 -0
  73. data/ext/cumo/narray/gen/tmpl_bit/bit_reduce.c +5 -0
  74. data/ext/cumo/narray/gen/tmpl_bit/mask.c +27 -7
  75. data/ext/cumo/narray/gen/tmpl_bit/store_bit.c +21 -7
  76. data/ext/cumo/narray/gen/tmpl_bit/unary.c +21 -7
  77. data/ext/cumo/narray/index.c +243 -39
  78. data/ext/cumo/narray/index_kernel.cu +84 -0
  79. data/ext/cumo/narray/narray.c +38 -1
  80. data/ext/cumo/narray/ndloop.c +1 -1
  81. data/ext/cumo/narray/struct.c +1 -1
  82. data/lib/cumo/cuda/compile_error.rb +1 -1
  83. data/lib/cumo/cuda/compiler.rb +23 -22
  84. data/lib/cumo/cuda/cudnn.rb +1 -1
  85. data/lib/cumo/cuda/device.rb +1 -1
  86. data/lib/cumo/cuda/link_state.rb +2 -2
  87. data/lib/cumo/cuda/module.rb +1 -2
  88. data/lib/cumo/cuda/nvrtc_program.rb +3 -2
  89. data/lib/cumo/cuda.rb +2 -0
  90. data/lib/cumo/linalg.rb +2 -0
  91. data/lib/cumo/narray/extra.rb +137 -185
  92. data/lib/cumo/narray.rb +2 -0
  93. data/lib/cumo.rb +3 -1
  94. data/test/bit_test.rb +157 -0
  95. data/test/cuda/compiler_test.rb +69 -0
  96. data/test/cuda/device_test.rb +30 -0
  97. data/test/cuda/memory_pool_test.rb +45 -0
  98. data/test/cuda/nvrtc_test.rb +51 -0
  99. data/test/cuda/runtime_test.rb +28 -0
  100. data/test/cudnn_test.rb +498 -0
  101. data/test/cumo_test.rb +27 -0
  102. data/test/narray_test.rb +745 -0
  103. data/test/ractor_test.rb +52 -0
  104. data/test/test_helper.rb +31 -0
  105. metadata +31 -54
  106. data/.travis.yml +0 -5
  107. data/numo-narray-version +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4886418f8fc62df52cc7b235e755e2d7733221b39d46f2f68e25a1ee49923487
4
- data.tar.gz: 7476161b95f04d560397d6d2d6abf64bfbf9987a10559ea90e66fa12275075bb
3
+ metadata.gz: 6c2daf87323aec6ca6a8770825e09c5b6bb57d2ab1b6f10b7405d8c1ea1aa07e
4
+ data.tar.gz: cf8359dbc51fdc479fddf3eb6204db7b4f531757d0da445c50b2e34b8a817a4c
5
5
  SHA512:
6
- metadata.gz: 543fc92511dc863926f970ff23d811fc7975d182b74f11053ace504e68a6fd70b607c132a46bdf6f9396131560885d92a91a8c91544e0524d6a3cad12b3cdb64
7
- data.tar.gz: 610458caead3fef458aba25384ad817ff27e727f01d3452d165332163b93c64b14934b7d9546c942fc60920d63e6fb5e745180c1c69ad6ee0d2f96f3d8a9887b
6
+ metadata.gz: c6a3eca253db3d854c8f7ced3ddc2f54836189ccf2065885e14de5acbaa1aced18e4341cf55e7b348f78db11afbd1be1558c3ab94881c3162ca6241b6e91c511
7
+ data.tar.gz: 5696875ce0d4e3d9d20e483892167b71696bfff6a2dc5594b87628e517e3fa29528f828bc63d8adbf6f0c4b43c47efe6beac31d0344320cf7c2f847d6c0d5d1b
data/.gitignore CHANGED
@@ -18,6 +18,9 @@ ext/cumo/narray/types/*.cu
18
18
  ext/cumo/include/cumo/extconf.h
19
19
  ext/cumo/Makefile
20
20
  ext/cumo/depend
21
+ ext/cumo/compile_commands.json
22
+ ext/cumo/.cache/clangd
23
+ lib/include/cumo/extconf.h
21
24
  TAGS
22
25
  t.rb
23
26
  .ruby-version
data/.rubocop.yml ADDED
@@ -0,0 +1,15 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ AllCops:
4
+ DefaultFormatter: fuubar
5
+ EnabledByDefault: true
6
+ TargetRubyVersion: 3.0
7
+
8
+ Layout/LineLength:
9
+ Enabled: false
10
+
11
+ Metrics:
12
+ Enabled: false
13
+
14
+ Style/Copyright:
15
+ Enabled: false