)]}'
{
  "commit": "8fbd47052bcafea612b8ae2841c1de5db738f042",
  "tree": "1e8d3f8ab0bc9e48e18b0502b7d51500e72a7266",
  "parents": [
    "e206f8d4a401fe2060bada4d4b5d92e3bf3b561c"
  ],
  "author": {
    "name": "Deven Desai",
    "email": "deven.desai.amd@gmail.com",
    "time": "Wed Jun 06 10:12:58 2018 -0400"
  },
  "committer": {
    "name": "Deven Desai",
    "email": "deven.desai.amd@gmail.com",
    "time": "Wed Jun 06 10:12:58 2018 -0400"
  },
  "message": "Adding support for using Eigen in HIP kernels.\n\nThis commit enables the use of Eigen on HIP kernels / AMD GPUs. Support has been added along the same lines as what already exists for using Eigen in CUDA kernels / NVidia GPUs.\n\nApplication code needs to explicitly define EIGEN_USE_HIP when using Eigen in HIP kernels. This is because some of the CUDA headers get picked up by default during Eigen compile (irrespective of whether or not the underlying compiler is CUDACC/NVCC, for e.g. Eigen/src/Core/arch/CUDA/Half.h). In order to maintain this behavior, the EIGEN_USE_HIP macro is used to switch to using the HIP version of those header files (see Eigen/Core and unsupported/Eigen/CXX11/Tensor)\n\n\nUse the \"-DEIGEN_TEST_HIP\" cmake option to enable the HIP specific unit tests.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f6bc18a080e63fdcebf156ef842872caeb6f4e4e",
      "old_mode": 33188,
      "old_path": "Eigen/Core",
      "new_id": "c72d5468a437aa24386b4d9d8cd1a27aa0f5d266",
      "new_mode": 33188,
      "new_path": "Eigen/Core"
    },
    {
      "type": "modify",
      "old_id": "888a3f7eaccdef5be9b455b252bfb743032a49dc",
      "old_mode": 33188,
      "old_path": "Eigen/src/Core/GenericPacketMath.h",
      "new_id": "0903c3a6e0db76968fbb65b9bd2ef0e6a531587c",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/GenericPacketMath.h"
    },
    {
      "type": "modify",
      "old_id": "05462c5e14dce6555d7d84cab90c2b1567d1c339",
      "old_mode": 33188,
      "old_path": "Eigen/src/Core/MathFunctions.h",
      "new_id": "6beef5def53aec2139bc6a12e5c8be8ae6bb3afa",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/MathFunctions.h"
    },
    {
      "type": "modify",
      "old_id": "fb637191d95d3fd1cb0b945464f334960e26df0e",
      "old_mode": 33188,
      "old_path": "Eigen/src/Core/ProductEvaluators.h",
      "new_id": "cc75fbce309c06f710f4b80413bae3ab4fa62378",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/ProductEvaluators.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2ce8a412c8c94be176bfcc9d53cf94a05d836e12",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/arch/HIP/hcc/Half.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "29c3f46713bc9171195e1bde439094d0d2b9c577",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/arch/HIP/hcc/PacketMathHalf.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "915266a9d48cc76acb3f47ad719d6059dbf6fa81",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/arch/HIP/hcc/TypeCasting.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "25375a0a420aaee8d7dd9fb6ebc88eca4ee42adc",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/arch/HIP/hcc/math_constants.h"
    },
    {
      "type": "modify",
      "old_id": "3eae6b8cada75488767699a698efa7dba383cbe9",
      "old_mode": 33188,
      "old_path": "Eigen/src/Core/functors/BinaryFunctors.h",
      "new_id": "e269140bdd066fac426129eefc2414a5c3d76b0d",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/functors/BinaryFunctors.h"
    },
    {
      "type": "modify",
      "old_id": "b1791fb3ac319c9fda438f36e0d347200cf7670c",
      "old_mode": 33261,
      "old_path": "Eigen/src/Core/util/BlasUtil.h",
      "new_id": "a4cde6d9537bf55e703fbb93ea8e1b61452e551d",
      "new_mode": 33261,
      "new_path": "Eigen/src/Core/util/BlasUtil.h"
    },
    {
      "type": "modify",
      "old_id": "9c68ecb7d97346864f68120fd3b8837a8da89327",
      "old_mode": 33188,
      "old_path": "Eigen/src/Core/util/Macros.h",
      "new_id": "c6e27f6afe4d59cf20363fd5fb105437a10b01d5",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/util/Macros.h"
    },
    {
      "type": "modify",
      "old_id": "53300c388be6d093fe8ca5fc43ce5e017c8f41dd",
      "old_mode": 33188,
      "old_path": "Eigen/src/Core/util/Memory.h",
      "new_id": "87fcc30f54c94a117b618ec618aa951d64aa5401",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/util/Memory.h"
    },
    {
      "type": "modify",
      "old_id": "6e5af35c01b80acf7c3eeabeca773390d812b884",
      "old_mode": 33261,
      "old_path": "Eigen/src/Core/util/Meta.h",
      "new_id": "ca6fa6ce96edd5d2f0b52d0bee30510efce73b07",
      "new_mode": 33261,
      "new_path": "Eigen/src/Core/util/Meta.h"
    },
    {
      "type": "modify",
      "old_id": "040f8d3bbe1b90373e5e291753e20e124e7edc18",
      "old_mode": 33188,
      "old_path": "Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h",
      "new_id": "bf28edc0e12e5441dcb5e5b48ecb6c33a96a270f",
      "new_mode": 33188,
      "new_path": "Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h"
    },
    {
      "type": "modify",
      "old_id": "a24deb96a0894e2a5e4042febbeba26b3bb2bd69",
      "old_mode": 33188,
      "old_path": "Eigen/src/SVD/BDCSVD.h",
      "new_id": "e977b962367d718597a63e7d73dfd4248b32cc87",
      "new_mode": 33188,
      "new_path": "Eigen/src/SVD/BDCSVD.h"
    },
    {
      "type": "modify",
      "old_id": "7d2d637220c9817df4addb96c91d13ac33c913e7",
      "old_mode": 33188,
      "old_path": "cmake/EigenTesting.cmake",
      "new_id": "f818ae840813ffbea5e9b718d96880f58c15a7f4",
      "new_mode": 33188,
      "new_path": "cmake/EigenTesting.cmake"
    },
    {
      "type": "modify",
      "old_id": "e1eef086e259c6a0c8db52a9eaa8fd6b54c783bd",
      "old_mode": 33188,
      "old_path": "test/CMakeLists.txt",
      "new_id": "4a5c1d36d2bf7fc6b1144c1d3aee8474a7a919b3",
      "new_mode": 33188,
      "new_path": "test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2e1bf94a4cf65e01afde510eaa5e3552249e9502",
      "new_mode": 33188,
      "new_path": "test/hip_basic.cu"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "251585c52f3ee5daa7044b1dd84f4158e1bf6145",
      "new_mode": 33188,
      "new_path": "test/hip_common.h"
    },
    {
      "type": "modify",
      "old_id": "0fcd6cb7642c1496f03067474799050dd2632559",
      "old_mode": 33188,
      "old_path": "test/main.h",
      "new_id": "79717a532a68b1e8b6f82f4edfc3d15128240536",
      "new_mode": 33188,
      "new_path": "test/main.h"
    },
    {
      "type": "modify",
      "old_id": "d243fe0351471a7cbfd897544d04a5f838385ee7",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/Tensor",
      "new_id": "4b7c7d724a8b12f808261f41cf6d2d1d97e7fdbb",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/Tensor"
    },
    {
      "type": "modify",
      "old_id": "e72ddb4a9b905339110bf9c8f2c3e2b12f035f46",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h",
      "new_id": "979fcf4d9186c49c84a2990a419244cd1ccc7ac2",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h"
    },
    {
      "type": "modify",
      "old_id": "d34f9caee330a9974981d4b7c2390b2c06fbab31",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h",
      "new_id": "4853dd37b940b9a493ae4a6d44c68d21a19cddd4",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7561846a3fc58604aa903b3f5d94adcce028d949",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorContractionHip.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ba9971050a59043ff94e2c74ca0e7116f414742b",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionHip.h"
    },
    {
      "type": "modify",
      "old_id": "341889e88ea534cc6d312faa664384b3c001e52c",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h",
      "new_id": "e94e577fcf541bb49f2710313b846a733bd19e2f",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c0e11098797366524c48b294122522496fc3acd8",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorDeviceHip.h"
    },
    {
      "type": "modify",
      "old_id": "0ffe68ab33cd95c89d818a1f771e2e9f163de495",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h",
      "new_id": "24a57970ab8e31af9b69828a8e5a1a12572459a2",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h"
    },
    {
      "type": "modify",
      "old_id": "c015ce1964e09363d03f0e52247b2aeb570a6494",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h",
      "new_id": "b8f0bc798acc12093dd8dc05c0f9666478c87b4e",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h"
    },
    {
      "type": "modify",
      "old_id": "3209fecd34d770db04503e93d3e7de80d7a36e72",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h",
      "new_id": "835efbf726be538e2f8c6163686a921c306061ba",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h"
    },
    {
      "type": "modify",
      "old_id": "c9e61f359bb762e92400cb7288aa2ab06786dca4",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h",
      "new_id": "8e1ba486d6c14a9e849e73514e27b0a07e3ed244",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h"
    },
    {
      "type": "modify",
      "old_id": "5431eb740d7b2bbdf8d9319b7bceae0355700d87",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h",
      "new_id": "de1075cc172df97e6df7dea2503396305e56b429",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h"
    },
    {
      "type": "modify",
      "old_id": "e590745068b84e105a0ac38bef22856509dd71f5",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h",
      "new_id": "2a979845b4bc289a28be4851f2d01dfbd565c97a",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h"
    },
    {
      "type": "modify",
      "old_id": "230915db296c46c50aef6bdd06f3fc1facc87428",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h",
      "new_id": "71536a4b9fe2f93b61c7ed74730c315aded00573",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h"
    },
    {
      "type": "modify",
      "old_id": "da0ffe7288152315b9e77c980034a746db82f237",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h",
      "new_id": "d2fb3fd3292d841cc7191bdef597a3b7d150d157",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5304a22c509ec2b7ca79dd57d63e12570beb28e0",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorReductionHip.h"
    },
    {
      "type": "modify",
      "old_id": "1f545ef1aa41609883460918e9126976ec58e95d",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/Tensor/TensorScan.h",
      "new_id": "174a6a064dce1d3afee65c5917030e9802de817a",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/Tensor/TensorScan.h"
    },
    {
      "type": "modify",
      "old_id": "49d315a66b3aac484f67c2518b3ad40f13848e54",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/util/CXX11Meta.h",
      "new_id": "bb584e3f97053bd62b7432406739ea31d5b58805",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/util/CXX11Meta.h"
    },
    {
      "type": "modify",
      "old_id": "96b3a82612776850c8b0456404f5279f92659cd4",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/CXX11/src/util/EmulateArray.h",
      "new_id": "18b76350b1f0774e3a795c8e8ce4e72cc5726d7a",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/CXX11/src/util/EmulateArray.h"
    },
    {
      "type": "modify",
      "old_id": "6c7ac3f3bdb9994fad263d31bcae124b7ddbb6c0",
      "old_mode": 33188,
      "old_path": "unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h",
      "new_id": "5ab67dc1f772a4801cf4a0ef12049b512225b304",
      "new_mode": 33188,
      "new_path": "unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h"
    },
    {
      "type": "modify",
      "old_id": "42b790d55416742627b534beddaa8b08b803592a",
      "old_mode": 33188,
      "old_path": "unsupported/test/CMakeLists.txt",
      "new_id": "c3dba5f2a49644a03d92380c30b028cd2e7b5ae1",
      "new_mode": 33188,
      "new_path": "unsupported/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "57d6ca00094928c4b7921bad01b6d95a7e4cbe74",
      "new_mode": 33188,
      "new_path": "unsupported/test/cxx11_tensor_argmax_hip.cu"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bf6a49df45677d192f92ee62169a28c44498ef9c",
      "new_mode": 33188,
      "new_path": "unsupported/test/cxx11_tensor_cast_float16_hip.cu"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "652af0ab078c3aab6eae14528b39affe3b154594",
      "new_mode": 33188,
      "new_path": "unsupported/test/cxx11_tensor_contract_hip.cu"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b98c481ff920b73df8639d1ea4543d63a903136f",
      "new_mode": 33188,
      "new_path": "unsupported/test/cxx11_tensor_device_hip.cu"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f1794aa872657403d1d785747496d8979efe22ef",
      "new_mode": 33188,
      "new_path": "unsupported/test/cxx11_tensor_hip.cu"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6c1a401bfd10b4c52e66e39ba8d54f3157bf2309",
      "new_mode": 33188,
      "new_path": "unsupported/test/cxx11_tensor_of_float16_hip.cu"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7d7e72ca25fef74fa648b60be5bb2e027c08dfbc",
      "new_mode": 33188,
      "new_path": "unsupported/test/cxx11_tensor_random_hip.cu"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c5aad05be0ea57978da6fe6998c903ec33d302a8",
      "new_mode": 33188,
      "new_path": "unsupported/test/cxx11_tensor_reduction_hip.cu"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f4c4f59b95c4ec5ab25379882654f11ea85f8ca8",
      "new_mode": 33188,
      "new_path": "unsupported/test/cxx11_tensor_scan_hip.cu"
    }
  ]
}
