http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParWorkerReducer.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParWorkerReducer.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParWorkerReducer.java index 11d1ed9..9352508 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParWorkerReducer.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParWorkerReducer.java @@ -48,6 +48,7 @@ import org.apache.sysml.runtime.matrix.mapred.MRConfigurationNames; import org.apache.sysml.runtime.matrix.mapred.MRJobConfiguration; import org.apache.sysml.runtime.util.LocalFileUtils; import org.apache.sysml.runtime.util.ProgramConverter; +import org.apache.sysml.utils.IntUtils; import org.apache.sysml.utils.Statistics; public class RemoteDPParWorkerReducer extends ParWorker @@ -120,8 +121,8 @@ public class RemoteDPParWorkerReducer extends ParWorker _dpf = MRJobConfiguration.getPartitioningFormat( job ); MatrixCharacteristics mc = MRJobConfiguration.getPartitionedMatrixSize(job); PartitionFormat pf = new PartitionFormat(_dpf, MRJobConfiguration.getPartitioningSizeN(job)); - _rlen = (int)pf.getNumRows(mc); - _clen = (int)pf.getNumColumns(mc); + _rlen = IntUtils.toInt(pf.getNumRows(mc)); + _clen = IntUtils.toInt(pf.getNumColumns(mc)); _brlen = mc.getRowsPerBlock(); _bclen = mc.getColsPerBlock(); _iterVar = MRJobConfiguration.getPartitioningItervar( job ); @@ -129,9 +130,9 @@ public class RemoteDPParWorkerReducer extends ParWorker _info = MRJobConfiguration.getPartitioningOutputInfo( job ); _tSparseCol = MRJobConfiguration.getPartitioningTransposedCol( job ); if( _tSparseCol ) - _partition = new MatrixBlock((int)_clen, _rlen, true); + _partition = new MatrixBlock(IntUtils.toInt(_clen), _rlen, true); else - _partition = new MatrixBlock((int)_rlen, _clen, false); + _partition = new MatrixBlock(IntUtils.toInt(_rlen), _clen, false); //Step 1: configure parworker String taskID = job.get(MRConfigurationNames.MR_TASK_ID); @@ -152,7 +153,7 @@ public class RemoteDPParWorkerReducer extends ParWorker //create local runtime program String in = MRJobConfiguration.getProgramBlocks(job); - ParForBody body = ProgramConverter.parseParForBody(in, (int)_workerID); + ParForBody body = ProgramConverter.parseParForBody(in, IntUtils.toInt(_workerID)); _childBlocks = body.getChildBlocks(); _ec = body.getEc(); _resultVars = body.getResultVariables(); @@ -242,8 +243,8 @@ public class RemoteDPParWorkerReducer extends ParWorker while( valueList.hasNext() ) { PairWritableBlock pairValue = (PairWritableBlock)valueList.next(); - int row_offset = (int)(pairValue.indexes.getRowIndex()-1)*_brlen; - int col_offset = (int)(pairValue.indexes.getColumnIndex()-1)*_bclen; + int row_offset = IntUtils.toInt(pairValue.indexes.getRowIndex()-1)*_brlen; + int col_offset = IntUtils.toInt(pairValue.indexes.getColumnIndex()-1)*_bclen; MatrixBlock block = pairValue.block; if( !_partition.isInSparseFormat() ) //DENSE { @@ -297,7 +298,7 @@ public class RemoteDPParWorkerReducer extends ParWorker PairWritableCell pairValue = (PairWritableCell)valueList.next(); if( pairValue.indexes.getColumnIndex()<0 ) continue; //cells used to ensure empty partitions - _partition.quickSetValue(0, (int)pairValue.indexes.getColumnIndex()-1, pairValue.cell.getValue()); + _partition.quickSetValue(0, IntUtils.toInt(pairValue.indexes.getColumnIndex()-1), pairValue.cell.getValue()); } break; case COLUMN_WISE: @@ -307,9 +308,9 @@ public class RemoteDPParWorkerReducer extends ParWorker if( pairValue.indexes.getRowIndex()<0 ) continue; //cells used to ensure empty partitions if( _tSparseCol ) - _partition.appendValue(0,(int)pairValue.indexes.getRowIndex()-1, pairValue.cell.getValue()); + _partition.appendValue(0,IntUtils.toInt(pairValue.indexes.getRowIndex()-1), pairValue.cell.getValue()); else - _partition.quickSetValue((int)pairValue.indexes.getRowIndex()-1, 0, pairValue.cell.getValue()); + _partition.quickSetValue(IntUtils.toInt(pairValue.indexes.getRowIndex()-1), 0, pairValue.cell.getValue()); } break; default:
http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForColocatedNLineInputFormat.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForColocatedNLineInputFormat.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForColocatedNLineInputFormat.java index a2a231d..397f72c 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForColocatedNLineInputFormat.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForColocatedNLineInputFormat.java @@ -30,6 +30,7 @@ import org.apache.sysml.runtime.controlprogram.ParForProgramBlock.PDataPartition import org.apache.sysml.runtime.controlprogram.ParForProgramBlock.PartitionFormat; import org.apache.sysml.runtime.matrix.MatrixCharacteristics; import org.apache.sysml.runtime.matrix.mapred.MRJobConfiguration; +import org.apache.sysml.utils.IntUtils; /** * Specific extension of NLineInputFormat in order to ensure data colocation @@ -48,7 +49,7 @@ public class RemoteParForColocatedNLineInputFormat extends NLineInputFormat MatrixCharacteristics mc = MRJobConfiguration.getPartitionedMatrixSize(job); PDataPartitionFormat dpf = MRJobConfiguration.getPartitioningFormat(job); PartitionFormat pf = new PartitionFormat(dpf, -1); - int blen = (int) (pf.isRowwise() ? pf.getNumRows(mc) : pf.getNumColumns(mc)); + int blen = IntUtils.toInt(pf.isRowwise() ? pf.getNumRows(mc) : pf.getNumColumns(mc)); String fname = MRJobConfiguration.getPartitioningFilename(job); //create wrapper splits http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForMR.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForMR.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForMR.java index 63e4b40..377fe9c 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForMR.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForMR.java @@ -54,6 +54,7 @@ import org.apache.sysml.runtime.matrix.mapred.MRConfigurationNames; import org.apache.sysml.runtime.matrix.mapred.MRJobConfiguration; import org.apache.sysml.runtime.util.MapReduceTool; import org.apache.sysml.runtime.util.ProgramConverter; +import org.apache.sysml.utils.IntUtils; import org.apache.sysml.utils.Statistics; import org.apache.sysml.yarn.DMLAppMasterUtils; @@ -182,20 +183,20 @@ public class RemoteParForMR // Process different counters Statistics.incrementNoOfExecutedMRJobs(); Group pgroup = runjob.getCounters().getGroup(ParForProgramBlock.PARFOR_COUNTER_GROUP_NAME); - int numTasks = (int)pgroup.getCounter( Stat.PARFOR_NUMTASKS.toString() ); - int numIters = (int)pgroup.getCounter( Stat.PARFOR_NUMITERS.toString() ); + int numTasks = IntUtils.toInt(pgroup.getCounter( Stat.PARFOR_NUMTASKS.toString() )); + int numIters = IntUtils.toInt(pgroup.getCounter( Stat.PARFOR_NUMITERS.toString() )); if( ConfigurationManager.isStatistics() && !InfrastructureAnalyzer.isLocalMode() ) { Statistics.incrementJITCompileTime( pgroup.getCounter( Stat.PARFOR_JITCOMPILE.toString() ) ); Statistics.incrementJVMgcCount( pgroup.getCounter( Stat.PARFOR_JVMGC_COUNT.toString() ) ); Statistics.incrementJVMgcTime( pgroup.getCounter( Stat.PARFOR_JVMGC_TIME.toString() ) ); Group cgroup = runjob.getCounters().getGroup(CacheableData.CACHING_COUNTER_GROUP_NAME.toString()); - CacheStatistics.incrementMemHits((int)cgroup.getCounter( CacheStatistics.Stat.CACHE_HITS_MEM.toString() )); - CacheStatistics.incrementFSBuffHits((int)cgroup.getCounter( CacheStatistics.Stat.CACHE_HITS_FSBUFF.toString() )); - CacheStatistics.incrementFSHits((int)cgroup.getCounter( CacheStatistics.Stat.CACHE_HITS_FS.toString() )); - CacheStatistics.incrementHDFSHits((int)cgroup.getCounter( CacheStatistics.Stat.CACHE_HITS_HDFS.toString() )); - CacheStatistics.incrementFSBuffWrites((int)cgroup.getCounter( CacheStatistics.Stat.CACHE_WRITES_FSBUFF.toString() )); - CacheStatistics.incrementFSWrites((int)cgroup.getCounter( CacheStatistics.Stat.CACHE_WRITES_FS.toString() )); - CacheStatistics.incrementHDFSWrites((int)cgroup.getCounter( CacheStatistics.Stat.CACHE_WRITES_HDFS.toString() )); + CacheStatistics.incrementMemHits(cgroup.getCounter( CacheStatistics.Stat.CACHE_HITS_MEM.toString() )); + CacheStatistics.incrementFSBuffHits(cgroup.getCounter( CacheStatistics.Stat.CACHE_HITS_FSBUFF.toString() )); + CacheStatistics.incrementFSHits(cgroup.getCounter( CacheStatistics.Stat.CACHE_HITS_FS.toString() )); + CacheStatistics.incrementHDFSHits(cgroup.getCounter( CacheStatistics.Stat.CACHE_HITS_HDFS.toString() )); + CacheStatistics.incrementFSBuffWrites(cgroup.getCounter( CacheStatistics.Stat.CACHE_WRITES_FSBUFF.toString() )); + CacheStatistics.incrementFSWrites(cgroup.getCounter( CacheStatistics.Stat.CACHE_WRITES_FS.toString() )); + CacheStatistics.incrementHDFSWrites(cgroup.getCounter( CacheStatistics.Stat.CACHE_WRITES_HDFS.toString() )); CacheStatistics.incrementAcquireRTime(cgroup.getCounter( CacheStatistics.Stat.CACHE_TIME_ACQR.toString() )); CacheStatistics.incrementAcquireMTime(cgroup.getCounter( CacheStatistics.Stat.CACHE_TIME_ACQM.toString() )); CacheStatistics.incrementReleaseTime(cgroup.getCounter( CacheStatistics.Stat.CACHE_TIME_RLS.toString() )); http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSparkWorker.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSparkWorker.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSparkWorker.java index fd0b9eb..c6c8bfb 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSparkWorker.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSparkWorker.java @@ -39,6 +39,7 @@ import org.apache.sysml.runtime.controlprogram.caching.CacheableData; import org.apache.sysml.runtime.controlprogram.parfor.stat.InfrastructureAnalyzer; import org.apache.sysml.runtime.util.ProgramConverter; import org.apache.sysml.runtime.util.UtilFunctions; +import org.apache.sysml.utils.IntUtils; import scala.Tuple2; @@ -90,7 +91,7 @@ public class RemoteParForSparkWorker extends ParWorker implements PairFlatMapFun //maintain accumulators _aTasks.add( 1 ); - _aIters.add( (int)(getExecutedIterations()-numIter) ); + _aIters.add( IntUtils.toInt(getExecutedIterations()-numIter) ); //cleanup remaining intermediate variables from buffer pool _ec.getVariables().keySet().stream().filter(v -> !inVars.contains(v)) @@ -114,7 +115,7 @@ public class RemoteParForSparkWorker extends ParWorker implements PairFlatMapFun CodegenUtils.getClassSync(e.getKey(), e.getValue()); //parse and setup parfor body program - ParForBody body = ProgramConverter.parseParForBody(_prog, (int)_workerID, true); + ParForBody body = ProgramConverter.parseParForBody(_prog, IntUtils.toInt(_workerID), true); _childBlocks = body.getChildBlocks(); _ec = body.getEc(); _resultVars = body.getResultVariables(); http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParWorkerMapper.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParWorkerMapper.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParWorkerMapper.java index 7db5bcd..5c1d978 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParWorkerMapper.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParWorkerMapper.java @@ -42,6 +42,7 @@ import org.apache.sysml.runtime.matrix.mapred.MRConfigurationNames; import org.apache.sysml.runtime.matrix.mapred.MRJobConfiguration; import org.apache.sysml.runtime.util.LocalFileUtils; import org.apache.sysml.runtime.util.ProgramConverter; +import org.apache.sysml.utils.IntUtils; import org.apache.sysml.utils.Statistics; /** @@ -162,7 +163,7 @@ public class RemoteParWorkerMapper extends ParWorker //MapReduceBase not requir //create local runtime program String in = MRJobConfiguration.getProgramBlocks(job); - ParForBody body = ProgramConverter.parseParForBody(in, (int)_workerID); + ParForBody body = ProgramConverter.parseParForBody(in, IntUtils.toInt(_workerID)); _childBlocks = body.getChildBlocks(); _ec = body.getEc(); _resultVars = body.getResultVariables(); http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java index 4f7fac5..1e081d0 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java @@ -60,6 +60,7 @@ import org.apache.sysml.runtime.util.DataConverter; import org.apache.sysml.runtime.util.FastStringTokenizer; import org.apache.sysml.runtime.util.LocalFileUtils; import org.apache.sysml.runtime.util.MapReduceTool; +import org.apache.sysml.utils.IntUtils; /** * @@ -706,8 +707,8 @@ public class ResultMergeLocalFile extends ResultMerge } else { //NOTE: whenever runtime does not need all blocks anymore, this can be removed - int maxRow = (int)(((brow-1)*brlen + brlen < rlen) ? brlen : rlen - (brow-1)*brlen); - int maxCol = (int)(((bcol-1)*bclen + bclen < clen) ? bclen : clen - (bcol-1)*bclen); + int maxRow = IntUtils.toInt(((brow-1)*brlen + brlen < rlen) ? brlen : rlen - (brow-1)*brlen); + int maxCol = IntUtils.toInt(((bcol-1)*bclen + bclen < clen) ? bclen : clen - (bcol-1)*bclen); mb = new MatrixBlock(maxRow, maxCol, true); } http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalMemory.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalMemory.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalMemory.java index c76b3f9..a95b736 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalMemory.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalMemory.java @@ -32,6 +32,7 @@ import org.apache.sysml.runtime.matrix.data.InputInfo; import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.matrix.data.OutputInfo; import org.apache.sysml.runtime.util.DataConverter; +import org.apache.sysml.utils.IntUtils; /** * Local in-memory realization of result merge. If the resulting matrix is @@ -165,8 +166,8 @@ public class ResultMergeLocalMemory extends ResultMerge //NOTE: always in dense representation in order to allow for parallel unsynchronized access long rows = outMB.getNumRows(); long cols = outMB.getNumColumns(); - MatrixBlock outMBNew = new MatrixBlock((int)rows, (int)cols, false); - outMBNew.allocateDenseBlockUnsafe((int)rows, (int)cols); + MatrixBlock outMBNew = new MatrixBlock(IntUtils.toInt(rows), IntUtils.toInt(cols), false); + outMBNew.allocateDenseBlockUnsafe(IntUtils.toInt(rows), IntUtils.toInt(cols)); //create compare matrix if required (existing data in result) _compare = getCompareMatrix(outMB); http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteMR.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteMR.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteMR.java index 2884c32..40d7233 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteMR.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteMR.java @@ -50,6 +50,7 @@ import org.apache.sysml.runtime.matrix.mapred.MRConfigurationNames; import org.apache.sysml.runtime.matrix.mapred.MRJobConfiguration; import org.apache.sysml.runtime.util.LocalFileUtils; import org.apache.sysml.runtime.util.MapReduceTool; +import org.apache.sysml.utils.IntUtils; import org.apache.sysml.utils.Statistics; /** @@ -256,7 +257,7 @@ public class ResultMergeRemoteMR extends ResultMerge reducerGroups = Math.max(rlen/brlen,1) * Math.max(clen/bclen, 1); else //textcell/binarycell reducerGroups = Math.max((rlen*clen)/StagingFileUtils.CELL_BUFFER_SIZE, 1); - job.setNumReduceTasks( (int)Math.min( _numReducers, reducerGroups) ); + job.setNumReduceTasks( IntUtils.toInt(Math.min( _numReducers, reducerGroups) )); //disable automatic tasks timeouts and speculative task exec http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemotePartitioning.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemotePartitioning.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemotePartitioning.java index 93c39b0..71fcabc 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemotePartitioning.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemotePartitioning.java @@ -25,6 +25,7 @@ import org.apache.hadoop.mapred.Partitioner; import org.apache.sysml.runtime.matrix.data.MatrixIndexes; import org.apache.sysml.runtime.matrix.data.TaggedMatrixBlock; import org.apache.sysml.runtime.matrix.mapred.MRJobConfiguration; +import org.apache.sysml.utils.IntUtils; public class ResultMergeRemotePartitioning implements Partitioner<ResultMergeTaggedMatrixIndexes, TaggedMatrixBlock> { @@ -45,7 +46,7 @@ public class ResultMergeRemotePartitioning implements Partitioner<ResultMergeTag //the assumption that there is no sparsity skew between blocks. MatrixIndexes ix = key.getIndexes(); - int blockid = (int) (ix.getRowIndex() * _numColBlocks + ix.getColumnIndex()); + int blockid = IntUtils.toInt(ix.getRowIndex() * _numColBlocks + ix.getColumnIndex()); int partition = blockid % numPartitions; //int hash = key.getIndexes().hashCode(); @@ -59,7 +60,7 @@ public class ResultMergeRemotePartitioning implements Partitioner<ResultMergeTag { long[] tmp = MRJobConfiguration.getResultMergeMatrixCharacteristics( job ); long clen = tmp[1]; - int bclen = (int) tmp[3]; + int bclen = IntUtils.toInt(tmp[3]); _numColBlocks = clen/bclen + ((clen%bclen!=0)? 1 : 0); } } http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSpark.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSpark.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSpark.java index 8055c2b..85a0957 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSpark.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSpark.java @@ -41,6 +41,7 @@ import org.apache.sysml.runtime.matrix.data.InputInfo; import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.matrix.data.MatrixIndexes; import org.apache.sysml.runtime.matrix.data.OutputInfo; +import org.apache.sysml.utils.IntUtils; import org.apache.sysml.utils.Statistics; public class ResultMergeRemoteSpark extends ResultMerge @@ -120,7 +121,7 @@ public class ResultMergeRemoteSpark extends ResultMerge RDDObject ret = null; //determine degree of parallelism - int numRed = (int)determineNumReducers(rlen, clen, brlen, bclen, _numReducers); + int numRed = IntUtils.toInt(determineNumReducers(rlen, clen, brlen, bclen, _numReducers)); //sanity check for empty src files if( inputs == null || inputs.length==0 ) @@ -197,7 +198,7 @@ public class ResultMergeRemoteSpark extends ResultMerge private static int determineNumReducers(long rlen, long clen, int brlen, int bclen, long numRed) { //set the number of mappers and reducers long reducerGroups = Math.max(rlen/brlen,1) * Math.max(clen/bclen, 1); - return (int)Math.min( numRed, reducerGroups ); + return IntUtils.toInt(Math.min( numRed, reducerGroups )); } @SuppressWarnings("unchecked") http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerStatic.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerStatic.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerStatic.java index 9f68768..d2ca1cc 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerStatic.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerStatic.java @@ -20,6 +20,7 @@ package org.apache.sysml.runtime.controlprogram.parfor; import org.apache.sysml.runtime.instructions.cp.IntObject; +import org.apache.sysml.utils.IntUtils; /** * This static task partitioner virtually iterates over the given FOR loop (from, to, incr), @@ -35,6 +36,6 @@ public class TaskPartitionerStatic extends TaskPartitionerFixedsize super(taskSize, iterVarName, fromVal, toVal, incrVal); _taskSize = _numIter / numThreads; - _firstnPlus1 = (int)_numIter % numThreads; + _firstnPlus1 = IntUtils.toInt(_numIter % numThreads); } } http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/CentralMomentCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/CentralMomentCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/CentralMomentCPInstruction.java index 4f13f1f..468e147 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/CentralMomentCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/CentralMomentCPInstruction.java @@ -28,6 +28,7 @@ import org.apache.sysml.runtime.instructions.InstructionUtils; import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.matrix.operators.CMOperator; import org.apache.sysml.runtime.matrix.operators.CMOperator.AggregateOperationTypes; +import org.apache.sysml.utils.IntUtils; public class CentralMomentCPInstruction extends AggregateUnaryCPInstruction { @@ -104,7 +105,7 @@ public class CentralMomentCPInstruction extends AggregateUnaryCPInstruction { CMOperator cm_op = ((CMOperator)_optr); if ( cm_op.getAggOpType() == AggregateOperationTypes.INVALID ) - cm_op = cm_op.setCMAggOp((int)order.getLongValue()); + cm_op = cm_op.setCMAggOp(IntUtils.toInt(order.getLongValue())); CM_COV_Object cmobj = null; if (input3 == null ) { http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/CtableCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/CtableCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/CtableCPInstruction.java index 7b907b3..475f1a9 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/CtableCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/CtableCPInstruction.java @@ -31,6 +31,7 @@ import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.matrix.operators.SimpleOperator; import org.apache.sysml.runtime.util.DataConverter; import org.apache.sysml.runtime.util.LongLongDoubleHashMap.EntryType; +import org.apache.sysml.utils.IntUtils; public class CtableCPInstruction extends ComputationCPInstruction { private final String _outDim1; @@ -110,7 +111,7 @@ public class CtableCPInstruction extends ComputationCPInstruction { //only create result block if dense; it is important not to aggregate on sparse result //blocks because it would implicitly turn the O(N) algorithm into O(N log N). if( !sparse ) - resultBlock = new MatrixBlock((int)outputDim1, (int)outputDim2, false); + resultBlock = new MatrixBlock(IntUtils.toInt(outputDim1), IntUtils.toInt(outputDim2), false); } if( _isExpand ){ resultBlock = new MatrixBlock( matBlock1.getNumRows(), Integer.MAX_VALUE, true ); @@ -164,7 +165,7 @@ public class CtableCPInstruction extends ComputationCPInstruction { //we need to respect potentially specified output dimensions here, because we might have //decided for hash-aggregation just to prevent inefficiency in case of sparse outputs. if( outputDimsKnown ) - resultBlock = DataConverter.convertToMatrixBlock( resultMap, (int)outputDim1, (int)outputDim2 ); + resultBlock = DataConverter.convertToMatrixBlock( resultMap, IntUtils.toInt(outputDim1), IntUtils.toInt(outputDim2) ); else resultBlock = DataConverter.convertToMatrixBlock( resultMap ); } http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/DataGenCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/DataGenCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/DataGenCPInstruction.java index 7e0d5c1..49b060d 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/DataGenCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/DataGenCPInstruction.java @@ -34,6 +34,7 @@ import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.matrix.data.RandomMatrixGenerator; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.runtime.util.UtilFunctions; +import org.apache.sysml.utils.IntUtils; public class DataGenCPInstruction extends UnaryCPInstruction { @@ -217,7 +218,7 @@ public class DataGenCPInstruction extends UnaryCPInstruction { LOG.trace("Process DataGenCPInstruction rand with seed = "+lSeed+"."); RandomMatrixGenerator rgen = LibMatrixDatagen.createRandomMatrixGenerator( - pdf, (int) lrows, (int) lcols, rowsInBlock, colsInBlock, sparsity, minValue, maxValue, pdfParams); + pdf, IntUtils.toInt( lrows ), IntUtils.toInt( lcols ), rowsInBlock, colsInBlock, sparsity, minValue, maxValue, pdfParams); soresBlock = MatrixBlock.randOperations(rgen, seed, numThreads); } else if ( method == DataGenMethod.SEQ ) @@ -246,7 +247,7 @@ public class DataGenCPInstruction extends UnaryCPInstruction { if ( range < lrows && !replace ) throw new DMLRuntimeException("Sample (size=" + lrows + ") larger than population (size=" + range + ") can only be generated with replacement."); - soresBlock = MatrixBlock.sampleOperations(range, (int)lrows, replace, seed); + soresBlock = MatrixBlock.sampleOperations(range, IntUtils.toInt(lrows), replace, seed); } //guarded sparse block representation change http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/DataPartitionCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/DataPartitionCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/DataPartitionCPInstruction.java index e7caa68..b8b8005 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/DataPartitionCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/DataPartitionCPInstruction.java @@ -35,6 +35,7 @@ import org.apache.sysml.runtime.matrix.data.InputInfo; import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.matrix.data.OutputInfo; import org.apache.sysml.runtime.matrix.operators.Operator; +import org.apache.sysml.utils.IntUtils; public class DataPartitionCPInstruction extends UnaryCPInstruction { @@ -74,10 +75,10 @@ public class DataPartitionCPInstruction extends UnaryCPInstruction { //write matrix partitions to hdfs WriterBinaryBlock.writePartitionedBinaryBlockMatrixToHDFS(new Path(fname), new JobConf(ConfigurationManager.getCachedJobConf()), mb, moIn.getNumRows(), moIn.getNumColumns(), - (int)moIn.getNumRowsPerBlock(), (int)moIn.getNumColumnsPerBlock(), _pformat); + IntUtils.toInt(moIn.getNumRowsPerBlock()), IntUtils.toInt(moIn.getNumColumnsPerBlock()), _pformat); //ensure correctness of output characteristics (required if input unknown during compile and no recompile) - MatrixCharacteristics mc = new MatrixCharacteristics(moIn.getNumRows(), moIn.getNumColumns(), (int)moIn.getNumRowsPerBlock(), (int)moIn.getNumColumnsPerBlock(), moIn.getNnz()); + MatrixCharacteristics mc = new MatrixCharacteristics(moIn.getNumRows(), moIn.getNumColumns(), IntUtils.toInt(moIn.getNumRowsPerBlock()), IntUtils.toInt(moIn.getNumColumnsPerBlock()), moIn.getNnz()); MetaDataFormat meta = new MetaDataFormat(mc, OutputInfo.BinaryBlockOutputInfo, InputInfo.BinaryBlockInputInfo); moOut.setMetaData(meta); } http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/DnnCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/DnnCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/DnnCPInstruction.java index 7bed33f..12e39cd 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/DnnCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/DnnCPInstruction.java @@ -33,6 +33,7 @@ import org.apache.sysml.runtime.matrix.data.LibMatrixDNN.PoolingType; import org.apache.sysml.runtime.matrix.data.LibMatrixNative; import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.util.DnnUtils; +import org.apache.sysml.utils.IntUtils; import org.apache.sysml.utils.NativeHelper; public class DnnCPInstruction extends UnaryCPInstruction { @@ -267,8 +268,8 @@ public class DnnCPInstruction extends UnaryCPInstruction { } private static int getScalarInput(ExecutionContext ec, ArrayList<CPOperand> aL, int index) { - return (int) ec.getScalarInput(aL.get(index).getName(), - aL.get(index).getValueType(), aL.get(index).isLiteral()).getLongValue(); + return IntUtils.toInt( ec.getScalarInput(aL.get(index).getName(), + aL.get(index).getValueType(), aL.get(index).isLiteral()).getLongValue()); } public void processReluBackwardInstruction(ExecutionContext ec) { @@ -454,8 +455,8 @@ public class DnnCPInstruction extends UnaryCPInstruction { int R = getScalarInput(ec, _filter_shape, 2); int S = getScalarInput(ec, _filter_shape, 3); - int P = (int) DnnUtils.getP(H, R, stride_h, pad_h); - int Q = (int) DnnUtils.getQ(W, S, stride_w, pad_w); + int P = IntUtils.toInt( DnnUtils.getP(H, R, stride_h, pad_h) ); + int Q = IntUtils.toInt( DnnUtils.getQ(W, S, stride_w, pad_w) ); DnnParameters params = new DnnParameters(N, C, H, W, K, R, S, stride_h, stride_w, pad_h, pad_w, _numThreads); params.enableNative = NativeHelper.isNativeLibraryLoaded(); @@ -591,7 +592,7 @@ public class DnnCPInstruction extends UnaryCPInstruction { private void resetNumThreads(DnnParameters params, int numRows, int numCols, double sparsity) { if(ConfigurationManager.isGPU()) { double memBudget1Thread = OptimizerUtils.estimateSizeExactSparsity(numRows, numCols, sparsity); - int limitedDegreeOfParallelism = (int) Math.floor(_intermediateMemoryBudget / memBudget1Thread); + int limitedDegreeOfParallelism = IntUtils.toInt( Math.floor(_intermediateMemoryBudget / memBudget1Thread) ); if(params.numThreads > limitedDegreeOfParallelism) { params.numThreads = limitedDegreeOfParallelism; if(!warnedUnderUtilitization) http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameIndexingCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameIndexingCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameIndexingCPInstruction.java index 52e05b6..011b34b 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameIndexingCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameIndexingCPInstruction.java @@ -26,6 +26,7 @@ import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.controlprogram.context.ExecutionContext; import org.apache.sysml.runtime.matrix.data.FrameBlock; import org.apache.sysml.runtime.util.IndexRange; +import org.apache.sysml.utils.IntUtils; public final class FrameIndexingCPInstruction extends IndexingCPInstruction { @@ -71,7 +72,7 @@ public final class FrameIndexingCPInstruction extends IndexingCPInstruction { throw new DMLRuntimeException("Invalid index range of scalar leftindexing: "+ixrange.toString()+"." ); ScalarObject scalar = ec.getScalarInput(input2); out = new FrameBlock(lin); - out.set((int)ixrange.rowStart, (int)ixrange.colStart, scalar.getStringValue()); + out.set(IntUtils.toInt(ixrange.rowStart), IntUtils.toInt(ixrange.colStart), scalar.getStringValue()); } //unpin lhs input http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/IndexingCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/IndexingCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/IndexingCPInstruction.java index 5150847..31faa38 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/IndexingCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/IndexingCPInstruction.java @@ -26,6 +26,7 @@ import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.controlprogram.context.ExecutionContext; import org.apache.sysml.runtime.instructions.InstructionUtils; import org.apache.sysml.runtime.util.IndexRange; +import org.apache.sysml.utils.IntUtils; public abstract class IndexingCPInstruction extends UnaryCPInstruction { protected final CPOperand rowLower, rowUpper, colLower, colUpper; @@ -50,10 +51,10 @@ public abstract class IndexingCPInstruction extends UnaryCPInstruction { protected IndexRange getIndexRange(ExecutionContext ec) { return new IndexRange( //rl, ru, cl, ru - (int)(ec.getScalarInput(rowLower).getLongValue()-1), - (int)(ec.getScalarInput(rowUpper).getLongValue()-1), - (int)(ec.getScalarInput(colLower).getLongValue()-1), - (int)(ec.getScalarInput(colUpper).getLongValue()-1)); + IntUtils.toInt(ec.getScalarInput(rowLower).getLongValue()-1), + IntUtils.toInt(ec.getScalarInput(rowUpper).getLongValue()-1), + IntUtils.toInt(ec.getScalarInput(colLower).getLongValue()-1), + IntUtils.toInt(ec.getScalarInput(colUpper).getLongValue()-1)); } public static IndexingCPInstruction parseInstruction ( String str ) { http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/ListIndexingCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/ListIndexingCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/ListIndexingCPInstruction.java index 9e53700..5c4b104 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/ListIndexingCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/ListIndexingCPInstruction.java @@ -25,6 +25,7 @@ import org.apache.sysml.parser.Expression.ValueType; import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.controlprogram.caching.CacheableData; import org.apache.sysml.runtime.controlprogram.context.ExecutionContext; +import org.apache.sysml.utils.IntUtils; public final class ListIndexingCPInstruction extends IndexingCPInstruction { @@ -55,7 +56,7 @@ public final class ListIndexingCPInstruction extends IndexingCPInstruction { } else { ec.setVariable(output.getName(), - list.slice((int)rl.getLongValue()-1, (int)ru.getLongValue()-1)); + list.slice(IntUtils.toInt(rl.getLongValue()-1), IntUtils.toInt(ru.getLongValue()-1))); } } //left indexing @@ -68,14 +69,14 @@ public final class ListIndexingCPInstruction extends IndexingCPInstruction { if( rl.getValueType()==ValueType.STRING || ru.getValueType()==ValueType.STRING ) ec.setVariable(output.getName(), lin.copy().set(rl.getStringValue(), ru.getStringValue(), rin)); else - ec.setVariable(output.getName(), lin.copy().set((int)rl.getLongValue()-1, (int)ru.getLongValue()-1, rin)); + ec.setVariable(output.getName(), lin.copy().set(IntUtils.toInt(rl.getLongValue()-1), IntUtils.toInt(ru.getLongValue()-1), rin)); } else if( input2.getDataType().isScalar() ) { //LIST <- SCALAR ScalarObject scalar = ec.getScalarInput(input2); if( rl.getValueType()==ValueType.STRING ) ec.setVariable(output.getName(), lin.copy().set(rl.getStringValue(), scalar)); else - ec.setVariable(output.getName(), lin.copy().set((int)rl.getLongValue()-1, scalar)); + ec.setVariable(output.getName(), lin.copy().set(IntUtils.toInt(rl.getLongValue()-1), scalar)); } else if( input2.getDataType().isMatrix() ) { //LIST <- MATRIX/FRAME CacheableData<?> dat = ec.getCacheableData(input2); @@ -83,7 +84,7 @@ public final class ListIndexingCPInstruction extends IndexingCPInstruction { if( rl.getValueType()==ValueType.STRING ) ec.setVariable(output.getName(), lin.copy().set(rl.getStringValue(), dat)); else - ec.setVariable(output.getName(), lin.copy().set((int)rl.getLongValue()-1, dat)); + ec.setVariable(output.getName(), lin.copy().set(IntUtils.toInt(rl.getLongValue()-1), dat)); } else { throw new DMLRuntimeException("Unsupported list " http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/ListObject.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/ListObject.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/ListObject.java index 576e57c..c49c0d8 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/ListObject.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/ListObject.java @@ -27,6 +27,7 @@ import org.apache.sysml.parser.Expression.DataType; import org.apache.sysml.parser.Expression.ValueType; import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.controlprogram.caching.CacheableData; +import org.apache.sysml.utils.IntUtils; public class ListObject extends Data { private static final long serialVersionUID = 3652422061598967358L; @@ -52,8 +53,8 @@ public class ListObject extends Data { super(DataType.LIST, vt); _data = data; _names = names; - _nCacheable = (int) data.stream().filter( - d -> d instanceof CacheableData).count(); + _nCacheable = IntUtils.toInt( data.stream().filter( + d -> d instanceof CacheableData).count() ); } public ListObject(ListObject that) { http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixIndexingCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixIndexingCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixIndexingCPInstruction.java index 34a7476..48d6221 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixIndexingCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixIndexingCPInstruction.java @@ -30,6 +30,7 @@ import org.apache.sysml.runtime.controlprogram.caching.MatrixObject.UpdateType; import org.apache.sysml.runtime.controlprogram.context.ExecutionContext; import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.util.IndexRange; +import org.apache.sysml.utils.IntUtils; import org.apache.sysml.utils.Statistics; public final class MatrixIndexingCPInstruction extends IndexingCPInstruction { @@ -64,8 +65,8 @@ public final class MatrixIndexingCPInstruction extends IndexingCPInstruction { //execute right indexing operation (with shallow row copies for range //of entire sparse rows, which is safe due to copy on update) MatrixBlock matBlock = ec.getMatrixInput(input1.getName(), getExtendedOpcode()); - resultBlock = matBlock.slice((int)ixrange.rowStart, (int)ixrange.rowEnd, - (int)ixrange.colStart, (int)ixrange.colEnd, false, new MatrixBlock()); + resultBlock = matBlock.slice(IntUtils.toInt(ixrange.rowStart), IntUtils.toInt(ixrange.rowEnd), + IntUtils.toInt(ixrange.colStart), IntUtils.toInt(ixrange.colEnd), false, new MatrixBlock()); //unpin rhs input ec.releaseMatrixInput(input1.getName(), getExtendedOpcode()); @@ -101,7 +102,7 @@ public final class MatrixIndexingCPInstruction extends IndexingCPInstruction { throw new DMLRuntimeException("Invalid index range of scalar leftindexing: "+ixrange.toString()+"." ); ScalarObject scalar = ec.getScalarInput(input2.getName(), ValueType.DOUBLE, input2.isLiteral()); resultBlock = (MatrixBlock) matBlock.leftIndexingOperations(scalar, - (int)ixrange.rowStart, (int)ixrange.colStart, new MatrixBlock(), updateType); + IntUtils.toInt(ixrange.rowStart), IntUtils.toInt(ixrange.colStart), new MatrixBlock(), updateType); } //unpin lhs input http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixReshapeCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixReshapeCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixReshapeCPInstruction.java index 1f7b053..4553ca0 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixReshapeCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixReshapeCPInstruction.java @@ -26,6 +26,7 @@ import org.apache.sysml.runtime.instructions.InstructionUtils; import org.apache.sysml.runtime.matrix.data.LibMatrixReorg; import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.matrix.operators.Operator; +import org.apache.sysml.utils.IntUtils; public class MatrixReshapeCPInstruction extends UnaryCPInstruction { @@ -60,8 +61,8 @@ public class MatrixReshapeCPInstruction extends UnaryCPInstruction { public void processInstruction(ExecutionContext ec) { //get inputs MatrixBlock in = ec.getMatrixInput(input1.getName(), getExtendedOpcode()); - int rows = (int)ec.getScalarInput(_opRows).getLongValue(); //save cast - int cols = (int)ec.getScalarInput(_opCols).getLongValue(); //save cast + int rows = IntUtils.toInt(ec.getScalarInput(_opRows).getLongValue()); //save cast + int cols = IntUtils.toInt(ec.getScalarInput(_opCols).getLongValue()); //save cast BooleanObject byRow = (BooleanObject) ec.getScalarInput(_opByRow.getName(), ValueType.BOOLEAN, _opByRow.isLiteral()); //execute operations http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/PMMJCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/PMMJCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/PMMJCPInstruction.java index 93742dd..46f8d42 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/PMMJCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/PMMJCPInstruction.java @@ -24,6 +24,7 @@ import org.apache.sysml.runtime.controlprogram.context.ExecutionContext; import org.apache.sysml.runtime.instructions.InstructionUtils; import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.matrix.operators.Operator; +import org.apache.sysml.utils.IntUtils; public class PMMJCPInstruction extends ComputationCPInstruction { @@ -55,7 +56,7 @@ public class PMMJCPInstruction extends ComputationCPInstruction { //get inputs MatrixBlock matBlock1 = ec.getMatrixInput(input1.getName(), getExtendedOpcode()); MatrixBlock matBlock2 = ec.getMatrixInput(input2.getName(), getExtendedOpcode()); - int rlen = (int)ec.getScalarInput(input3.getName(), input3.getValueType(), input3.isLiteral()).getLongValue(); + int rlen = IntUtils.toInt(ec.getScalarInput(input3.getName(), input3.getValueType(), input3.isLiteral()).getLongValue()); //execute operations MatrixBlock ret = new MatrixBlock(rlen, matBlock2.getNumColumns(), matBlock2.isInSparseFormat()); matBlock1.permutationMatrixMultOperations(matBlock2, ret, null, _numThreads); http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java index 8b76ad7..841f742 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java @@ -50,6 +50,7 @@ import org.apache.sysml.runtime.transform.encode.Encoder; import org.apache.sysml.runtime.transform.encode.EncoderFactory; import org.apache.sysml.runtime.transform.meta.TfMetaUtils; import org.apache.sysml.runtime.util.DataConverter; +import org.apache.sysml.utils.IntUtils; public class ParameterizedBuiltinCPInstruction extends ComputationCPInstruction { private static final int TOSTRING_MAXROWS = 100; @@ -175,7 +176,7 @@ public class ParameterizedBuiltinCPInstruction extends ComputationCPInstruction int ngroups = -1; if ( params.get(Statement.GAGG_NUM_GROUPS) != null) { - ngroups = (int) Double.parseDouble(params.get(Statement.GAGG_NUM_GROUPS)); + ngroups = IntUtils.toInt( Double.parseDouble(params.get(Statement.GAGG_NUM_GROUPS))); } // compute the result http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/ParamservBuiltinCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/ParamservBuiltinCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/ParamservBuiltinCPInstruction.java index bc3ca24..a534882 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/ParamservBuiltinCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/ParamservBuiltinCPInstruction.java @@ -76,6 +76,7 @@ import org.apache.sysml.runtime.controlprogram.parfor.stat.InfrastructureAnalyze import org.apache.sysml.runtime.controlprogram.parfor.stat.Timing; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.runtime.util.ProgramConverter; +import org.apache.sysml.utils.IntUtils; import org.apache.sysml.utils.Statistics; public class ParamservBuiltinCPInstruction extends ParameterizedBuiltinCPInstruction { @@ -286,7 +287,7 @@ public class ParamservBuiltinCPInstruction extends ParameterizedBuiltinCPInstruc } private int getParLevel(int workerNum) { - return Math.max((int)Math.ceil((double)getRemainingCores()/workerNum), 1); + return Math.max(IntUtils.toInt(Math.ceil((double)getRemainingCores()/workerNum)), 1); } private PSUpdateType getUpdateType() { http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/ReorgCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/ReorgCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/ReorgCPInstruction.java index 5eeda8a..102dcb8 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/ReorgCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/ReorgCPInstruction.java @@ -32,6 +32,7 @@ import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.runtime.matrix.operators.ReorgOperator; import org.apache.sysml.runtime.util.DataConverter; +import org.apache.sysml.utils.IntUtils; public class ReorgCPInstruction extends UnaryCPInstruction { // sort-specific attributes (to enable variable attributes) @@ -130,7 +131,7 @@ public class ReorgCPInstruction extends UnaryCPInstruction { if( r_op.fn instanceof SortIndex ) { //additional attributes for sort int[] cols = _col.getDataType().isMatrix() ? DataConverter.convertToIntVector(ec.getMatrixInput(_col.getName())) : - new int[]{(int)ec.getScalarInput(_col).getLongValue()}; + new int[]{IntUtils.toInt(ec.getScalarInput(_col).getLongValue())}; boolean desc = ec.getScalarInput(_desc).getBooleanValue(); boolean ixret = ec.getScalarInput(_ixret).getBooleanValue(); r_op = r_op.setFn(new SortIndex(cols, desc, ixret)); http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/cp/StringInitCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/StringInitCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/StringInitCPInstruction.java index 2e82ab2..7fcd555 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/StringInitCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/StringInitCPInstruction.java @@ -28,6 +28,7 @@ import org.apache.sysml.runtime.controlprogram.context.ExecutionContext; import org.apache.sysml.runtime.instructions.InstructionUtils; import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.matrix.operators.Operator; +import org.apache.sysml.utils.IntUtils; public class StringInitCPInstruction extends UnaryCPInstruction { public static final String DELIM = " "; @@ -72,7 +73,7 @@ public class StringInitCPInstruction extends UnaryCPInstruction { public void processInstruction( ExecutionContext ec ) { //setup output matrix String outName = output.getName(); - MatrixBlock outBlk = new MatrixBlock((int)_rlen, (int)_clen, false); + MatrixBlock outBlk = new MatrixBlock(IntUtils.toInt(_rlen), IntUtils.toInt(_clen), false); //init tokenizer StringTokenizer st = new StringTokenizer(_data, DELIM); @@ -86,8 +87,8 @@ public class StringInitCPInstruction extends UnaryCPInstruction { for( int i=0; i<len; i++ ){ String sval = st.nextToken(); Double dval = Double.parseDouble(sval); - int rix = (int) (i / _clen); - int cix = (int) (i % _clen); + int rix = IntUtils.toInt(i / _clen); + int cix = IntUtils.toInt(i % _clen); outBlk.quickSetValue(rix, cix, dval); } http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/gpu/AggregateBinaryGPUInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/AggregateBinaryGPUInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/AggregateBinaryGPUInstruction.java index 1d8f7fe..1d2ac10 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/AggregateBinaryGPUInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/AggregateBinaryGPUInstruction.java @@ -34,6 +34,7 @@ import org.apache.sysml.runtime.matrix.operators.AggregateOperator; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.runtime.matrix.operators.ReorgOperator; import org.apache.sysml.utils.GPUStatistics; +import org.apache.sysml.utils.IntUtils; public class AggregateBinaryGPUInstruction extends GPUInstruction { private CPOperand _input1 = null; @@ -78,8 +79,8 @@ public class AggregateBinaryGPUInstruction extends GPUInstruction { MatrixObject m1 = getMatrixInputForGPUInstruction(ec, _input1.getName()); MatrixObject m2 = getMatrixInputForGPUInstruction(ec, _input2.getName()); //compute matrix multiplication - int rlen = (int) (_isLeftTransposed ? m1.getNumColumns() : m1.getNumRows()); - int clen = (int) (_isRightTransposed ? m2.getNumRows() : m2.getNumColumns()); + int rlen = IntUtils.toInt(_isLeftTransposed ? m1.getNumColumns() : m1.getNumRows()); + int clen = IntUtils.toInt(_isRightTransposed ? m2.getNumRows() : m2.getNumColumns()); ec.setMetaData(_output.getName(), rlen, clen); LibMatrixCuMatMult.matmult(ec, ec.getGPUContext(0), getExtendedOpcode(), m1, m2, _output.getName(), _isLeftTransposed, _isRightTransposed); //release inputs/outputs http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/gpu/AggregateUnaryGPUInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/AggregateUnaryGPUInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/AggregateUnaryGPUInstruction.java index 1d5802b..2ee6fed 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/AggregateUnaryGPUInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/AggregateUnaryGPUInstruction.java @@ -31,6 +31,7 @@ import org.apache.sysml.runtime.matrix.data.LibMatrixCUDA; import org.apache.sysml.runtime.matrix.operators.AggregateUnaryOperator; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.utils.GPUStatistics; +import org.apache.sysml.utils.IntUtils; /** * Implements aggregate unary instructions for CUDA @@ -77,8 +78,8 @@ public class AggregateUnaryGPUInstruction extends GPUInstruction { //get inputs MatrixObject in1 = getMatrixInputForGPUInstruction(ec, _input1.getName()); - int rlen = (int)in1.getNumRows(); - int clen = (int)in1.getNumColumns(); + int rlen = IntUtils.toInt(in1.getNumRows()); + int clen = IntUtils.toInt(in1.getNumColumns()); IndexFunction indexFunction = ((AggregateUnaryOperator) _optr).indexFn; if (indexFunction instanceof ReduceRow){ // COL{SUM, MAX...} http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/gpu/DnnGPUInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/DnnGPUInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/DnnGPUInstruction.java index 35c9591..226cc52 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/DnnGPUInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/DnnGPUInstruction.java @@ -36,6 +36,7 @@ import org.apache.sysml.runtime.matrix.data.LibMatrixDNN.PoolingType; import org.apache.sysml.runtime.matrix.operators.ReorgOperator; import org.apache.sysml.runtime.util.DnnUtils; import org.apache.sysml.utils.GPUStatistics; +import org.apache.sysml.utils.IntUtils; public class DnnGPUInstruction extends GPUInstruction { @@ -443,8 +444,8 @@ public class DnnGPUInstruction extends GPUInstruction { try(GPUDenseInputPointerFetcher fetcher = new GPUDenseInputPointerFetcher(ec, gCtx, instName, _output)) { fetcher.add("X", _input1).addScalar("eps", _input2); - int rows = LibMatrixCUDA.toInt(fetcher.getInputNumRows("X")); - int cols = LibMatrixCUDA.toInt(fetcher.getInputNumColumns("X")); + int rows = IntUtils.toInt(fetcher.getInputNumRows("X")); + int cols = IntUtils.toInt(fetcher.getInputNumColumns("X")); // invVar(X, C, eps, size); LibMatrixCUDA.getCudaKernels(gCtx).launchKernel("invVar", @@ -516,8 +517,8 @@ public class DnnGPUInstruction extends GPUInstruction { fetcher.add("ema_mean", _input1).add("mean", _input2).addScalar("mu", _input3); double mu = fetcher.getDouble("mu"); - int rows = LibMatrixCUDA.toInt(fetcher.getInputNumRows("ema_mean")); - int cols = LibMatrixCUDA.toInt(fetcher.getInputNumColumns("ema_mean")); + int rows = IntUtils.toInt(fetcher.getInputNumRows("ema_mean")); + int cols = IntUtils.toInt(fetcher.getInputNumColumns("ema_mean")); fetcher.validateDimensions("mean", rows, cols); @@ -536,8 +537,8 @@ public class DnnGPUInstruction extends GPUInstruction { int C = fetcher.getInteger("C"); int HW = fetcher.getInteger("HW"); fetcher.validateDimensions("X", -1, C*HW); - int rows = LibMatrixCUDA.toInt(fetcher.getInputNumRows("X")); - int cols = LibMatrixCUDA.toInt(fetcher.getInputNumColumns("X")); + int rows = IntUtils.toInt(fetcher.getInputNumRows("X")); + int cols = IntUtils.toInt(fetcher.getInputNumColumns("X")); // output = matrix(colMeans(X), rows=C, cols=Hin*Win) LibMatrixCUDA.colMeans(gCtx, instName, fetcher.getInputPointer("X"), @@ -565,7 +566,7 @@ public class DnnGPUInstruction extends GPUInstruction { Pointer subgrp_vars = gCtx.allocate(instName, C*HW*LibMatrixCUDA.sizeOfDataType); // subgrp_vars <- colVars(X) LibMatrixCUDA.colVars(gCtx, instName, fetcher.getInputPointer("X"), subgrp_vars, - LibMatrixCUDA.toInt(fetcher.getInputNumRows("X")), C*HW); + IntUtils.toInt(fetcher.getInputNumRows("X")), C*HW); // tmp1 <- rowMeans(subgrp_vars) Pointer tmp1 = gCtx.allocate(instName, C*LibMatrixCUDA.sizeOfDataType); @@ -592,11 +593,11 @@ public class DnnGPUInstruction extends GPUInstruction { fetcher.add("input", _input1).add("v", _input2).add("v_prev", _input3) .addScalar("mu", _input4); MatrixObject input = fetcher.getInputMatrixObject("input"); - int rows = LibMatrixCUDA.toInt(input.getNumRows()); - int cols = LibMatrixCUDA.toInt(input.getNumColumns()); + int rows = IntUtils.toInt(input.getNumRows()); + int cols = IntUtils.toInt(input.getNumColumns()); LibMatrixCUDA.getCudaKernels(gCtx).launchKernel("update_nesterov_x", - ExecutionConfig.getConfigForSimpleVectorOperations(LibMatrixCUDA.toInt(rows*cols)), + ExecutionConfig.getConfigForSimpleVectorOperations(IntUtils.toInt(rows*cols)), fetcher.getInputPointer("input"), fetcher.getInputPointer("v"), fetcher.getInputPointer("v_prev"), @@ -627,14 +628,14 @@ public class DnnGPUInstruction extends GPUInstruction { Pointer tmp = gCtx.allocate(instName, N*CHW*LibMatrixCUDA.sizeOfDataType); // jcuda.runtime.JCuda.cudaDeviceSynchronize(); LibMatrixCUDA.getCudaKernels(gCtx).launchKernel("backward_dgamma_tmp", - ExecutionConfig.getConfigForSimpleVectorOperations(LibMatrixCUDA.toInt(N*CHW)), + ExecutionConfig.getConfigForSimpleVectorOperations(IntUtils.toInt(N*CHW)), fetcher.getInputPointer("ema_mean"), fetcher.getInputPointer("dout"), fetcher.getInputPointer("X"), fetcher.getInputPointer("ema_var"), tmp, // N, C, HW, CHW, NCHW - toInt(N), toInt(C), toInt(HW), toInt(CHW), N*CHW); + IntUtils.toInt(N), IntUtils.toInt(C), IntUtils.toInt(HW), IntUtils.toInt(CHW), N*CHW); LibMatrixCUDA.channelSums(gCtx, instName, tmp, fetcher.getOutputPointer(C, 1), N, C, HW); @@ -642,13 +643,6 @@ public class DnnGPUInstruction extends GPUInstruction { } } - private static int toInt(long num) throws DMLRuntimeException { - if(num >= Integer.MAX_VALUE || num <= Integer.MIN_VALUE) { - throw new DMLRuntimeException("GPU : Exceeded supported size " + num); - } - return (int)num; - } - public static long getMemRequiredForCuDNNLSTMBackward(long N, long T, long M, long D, boolean return_sequences) { double memRequired = (D+M)*4*M // sysmlWPointer + 2*(D+M+2)*(4*M) // cudnnWPointer and cudnnDwPointer @@ -672,9 +666,9 @@ public class DnnGPUInstruction extends GPUInstruction { long numRowsW = W.getNumRows(); long D = numRowsW - M; // since W:(D+M, 4M) ... numFeatures MatrixObject X = getMatrixInputForGPUInstruction(ec, _input1.getName()); - int N = toInt(X.getNumRows()); // batchSize .. since X:(N, T*D) + int N = IntUtils.toInt(X.getNumRows()); // batchSize .. since X:(N, T*D) long numColsX = X.getNumColumns(); - int T = toInt(numColsX/ D); // since X:(N, T*D) ... seqLength + int T = IntUtils.toInt(numColsX/ D); // since X:(N, T*D) ... seqLength boolean return_sequences = ec.getScalarInput(_input6.getName(), _input6.getValueType(), _input6.isLiteral()).getBooleanValue(); // long memRequired = getMemRequiredForCuDNNLSTMBackward(N, T, M, D, return_sequences); @@ -703,14 +697,14 @@ public class DnnGPUInstruction extends GPUInstruction { Pointer sysmlBiasPointer = LibMatrixCuDNN.getDensePointerForCuDNN(gCtx, bias, instName, 1, 4*M); Pointer cudnnWPointer = gCtx.allocate(instName, (D+M+2)*(4*M)*LibMatrixCUDA.sizeOfDataType); LibMatrixCUDA.getCudaKernels(gCtx).launchKernel("prepare_lstm_weight", - ExecutionConfig.getConfigForSimpleVectorOperations(toInt((D+M+2)*(4*M))), + ExecutionConfig.getConfigForSimpleVectorOperations(IntUtils.toInt((D+M+2)*(4*M))), sysmlWPointer, sysmlBiasPointer, cudnnWPointer, D, M); ec.releaseMatrixInputForGPUInstruction(_input2.getName()); ec.releaseMatrixInputForGPUInstruction(_input3.getName()); Pointer xPointer = LibMatrixCUDA.getDensePointer(gCtx, X, instName); Pointer cudnnInput = gCtx.allocate(instName, (N*T*D)*LibMatrixCUDA.sizeOfDataType); LibMatrixCUDA.getCudaKernels(gCtx).launchKernel("prepare_lstm_input", - ExecutionConfig.getConfigForSimpleVectorOperations(toInt(N*T*D)), + ExecutionConfig.getConfigForSimpleVectorOperations(IntUtils.toInt(N*T*D)), xPointer, cudnnInput, N, D, T*D, N*T*D); ec.releaseMatrixInputForGPUInstruction(_input1.getName()); Pointer c0Pointer = LibMatrixCUDA.getDensePointer(gCtx, getMatrixInputForGPUInstruction(ec, _input5.getName()), instName); @@ -815,20 +809,20 @@ public class DnnGPUInstruction extends GPUInstruction { Pointer sysmlBiasPointer = LibMatrixCuDNN.getDensePointerForCuDNN(gCtx, bias, instName, 1, 4*M); Pointer cudnnWPointer = gCtx.allocate(instName, (D+M+2)*(4*M)*LibMatrixCUDA.sizeOfDataType); LibMatrixCUDA.getCudaKernels(gCtx).launchKernel("prepare_lstm_weight", - ExecutionConfig.getConfigForSimpleVectorOperations(toInt((D+M+2)*(4*M))), - sysmlWPointer, sysmlBiasPointer, cudnnWPointer, toInt(D), toInt(M)); + ExecutionConfig.getConfigForSimpleVectorOperations(IntUtils.toInt((D+M+2)*(4*M))), + sysmlWPointer, sysmlBiasPointer, cudnnWPointer, IntUtils.toInt(D), IntUtils.toInt(M)); ec.releaseMatrixInputForGPUInstruction(_input2.getName()); // W ec.releaseMatrixInputForGPUInstruction(_input3.getName()); // bias // Beause the matrices are released immediately, the output for transpose need not be taken into account Pointer xPointer = LibMatrixCUDA.getDensePointer(gCtx, X, instName); Pointer cudnnInput = gCtx.allocate(instName, (N*T*D)*LibMatrixCUDA.sizeOfDataType); LibMatrixCUDA.getCudaKernels(gCtx).launchKernel("prepare_lstm_input", - ExecutionConfig.getConfigForSimpleVectorOperations(toInt(N*T*D)), - xPointer, cudnnInput, toInt(N), toInt(D), toInt(T*D), toInt(N*T*D)); + ExecutionConfig.getConfigForSimpleVectorOperations(IntUtils.toInt(N*T*D)), + xPointer, cudnnInput, IntUtils.toInt(N), IntUtils.toInt(D), IntUtils.toInt(T*D), IntUtils.toInt(N*T*D)); ec.releaseMatrixInputForGPUInstruction(_input1.getName()); Pointer c0Pointer = LibMatrixCUDA.getDensePointer(gCtx, getMatrixInputForGPUInstruction(ec, _input5.getName()), instName); LibMatrixCuDNN.cuDNNLstm(ec, gCtx, instName, cudnnInput, cudnnWPointer, out0Pointer, c0Pointer, return_sequences, _output.getName(), _output2.getName(), - toInt(N), toInt(M), toInt(D), toInt(T)); + IntUtils.toInt(N), IntUtils.toInt(M), IntUtils.toInt(D), IntUtils.toInt(T)); gCtx.cudaFreeHelper(instName, cudnnWPointer, gCtx.EAGER_CUDA_FREE); gCtx.cudaFreeHelper(instName, cudnnInput, gCtx.EAGER_CUDA_FREE); } @@ -1016,8 +1010,8 @@ public class DnnGPUInstruction extends GPUInstruction { long CHW = ((long)C)*((long)H)*((long)W); x = gCtx.allocate(instName, ((long)N)*CHW*LibMatrixCUDA.sizeOfDataType); LibMatrixCuDNN.getCudaKernels(gCtx).launchKernel("relu", - ExecutionConfig.getConfigForSimpleMatrixOperations(toInt(N), toInt(CHW)), - tmpX, x, N, toInt(CHW)); + ExecutionConfig.getConfigForSimpleMatrixOperations(IntUtils.toInt(N), IntUtils.toInt(CHW)), + tmpX, x, N, IntUtils.toInt(CHW)); ec.releaseMatrixInputForGPUInstruction(_input1.getName()); } @@ -1046,8 +1040,8 @@ public class DnnGPUInstruction extends GPUInstruction { long CHW = ((long)C)*((long)H)*((long)W); x = gCtx.allocate(instName, ((long)N)*CHW*LibMatrixCUDA.sizeOfDataType); LibMatrixCuDNN.getCudaKernels(gCtx).launchKernel("relu", - ExecutionConfig.getConfigForSimpleMatrixOperations(toInt(N), toInt(CHW)), - tmpX, x, N, toInt(CHW)); + ExecutionConfig.getConfigForSimpleMatrixOperations(IntUtils.toInt(N), IntUtils.toInt(CHW)), + tmpX, x, N, IntUtils.toInt(CHW)); ec.releaseMatrixInputForGPUInstruction(_input1.getName()); } http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/gpu/MMTSJGPUInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MMTSJGPUInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MMTSJGPUInstruction.java index 310e358..642b36a 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MMTSJGPUInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MMTSJGPUInstruction.java @@ -28,6 +28,7 @@ import org.apache.sysml.runtime.instructions.cp.CPOperand; import org.apache.sysml.runtime.matrix.data.LibMatrixCUDA; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.utils.GPUStatistics; +import org.apache.sysml.utils.IntUtils; public class MMTSJGPUInstruction extends GPUInstruction { private MMTSJType _type = null; @@ -79,7 +80,7 @@ public class MMTSJGPUInstruction extends GPUInstruction { GPUStatistics.incrementNoOfExecutedGPUInst(); MatrixObject mat = getMatrixInputForGPUInstruction(ec, _input.getName()); boolean isLeftTransposed = ( _type == MMTSJType.LEFT); - int rlen = (int) (isLeftTransposed? mat.getNumColumns() : mat.getNumRows()); + int rlen = IntUtils.toInt(isLeftTransposed? mat.getNumColumns() : mat.getNumRows()); int clen = rlen; //execute operations ec.setMetaData(_output.getName(), rlen, clen); http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixIndexingGPUInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixIndexingGPUInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixIndexingGPUInstruction.java index 6e1ac2c..719f38e 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixIndexingGPUInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixIndexingGPUInstruction.java @@ -31,6 +31,7 @@ import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.runtime.matrix.operators.SimpleOperator; import org.apache.sysml.runtime.util.IndexRange; import org.apache.sysml.utils.GPUStatistics; +import org.apache.sysml.utils.IntUtils; public class MatrixIndexingGPUInstruction extends GPUInstruction { CPOperand rowLower, rowUpper, colLower, colUpper; @@ -135,9 +136,9 @@ public class MatrixIndexingGPUInstruction extends GPUInstruction { IndexRange getIndexRange(ExecutionContext ec) { return new IndexRange( //rl, ru, cl, ru - (int)(ec.getScalarInput(rowLower.getName(), rowLower.getValueType(), rowLower.isLiteral()).getLongValue()-1), - (int)(ec.getScalarInput(rowUpper.getName(), rowUpper.getValueType(), rowUpper.isLiteral()).getLongValue()-1), - (int)(ec.getScalarInput(colLower.getName(), colLower.getValueType(), colLower.isLiteral()).getLongValue()-1), - (int)(ec.getScalarInput(colUpper.getName(), colUpper.getValueType(), colUpper.isLiteral()).getLongValue()-1)); + IntUtils.toInt(ec.getScalarInput(rowLower.getName(), rowLower.getValueType(), rowLower.isLiteral()).getLongValue()-1), + IntUtils.toInt(ec.getScalarInput(rowUpper.getName(), rowUpper.getValueType(), rowUpper.isLiteral()).getLongValue()-1), + IntUtils.toInt(ec.getScalarInput(colLower.getName(), colLower.getValueType(), colLower.isLiteral()).getLongValue()-1), + IntUtils.toInt(ec.getScalarInput(colUpper.getName(), colUpper.getValueType(), colUpper.isLiteral()).getLongValue()-1)); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixArithmeticGPUInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixArithmeticGPUInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixArithmeticGPUInstruction.java index 9f4f2c5..2ce39f9 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixArithmeticGPUInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixArithmeticGPUInstruction.java @@ -26,6 +26,7 @@ import org.apache.sysml.runtime.matrix.data.LibMatrixCUDA; import org.apache.sysml.runtime.matrix.operators.BinaryOperator; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.utils.GPUStatistics; +import org.apache.sysml.utils.IntUtils; public class MatrixMatrixArithmeticGPUInstruction extends ArithmeticBinaryGPUInstruction { @@ -60,7 +61,7 @@ public class MatrixMatrixArithmeticGPUInstruction extends ArithmeticBinaryGPUIns clen = clen1 > clen2 ? clen1 : clen2; } - ec.setMetaData(_output.getName(), (int)rlen, (int)clen); + ec.setMetaData(_output.getName(), IntUtils.toInt(rlen), IntUtils.toInt(clen)); BinaryOperator bop = (BinaryOperator) _optr; LibMatrixCUDA.matrixMatrixArithmetic(ec, ec.getGPUContext(0), getExtendedOpcode(), in1, in2, _output.getName(), isLeftTransposed, isRightTransposed, bop); http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixAxpyGPUInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixAxpyGPUInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixAxpyGPUInstruction.java index a4eea05..2da1778 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixAxpyGPUInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixAxpyGPUInstruction.java @@ -29,6 +29,7 @@ import org.apache.sysml.runtime.instructions.cp.ScalarObject; import org.apache.sysml.runtime.matrix.data.LibMatrixCUDA; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.utils.GPUStatistics; +import org.apache.sysml.utils.IntUtils; public class MatrixMatrixAxpyGPUInstruction extends ArithmeticBinaryGPUInstruction { CPOperand constant = null; @@ -89,7 +90,7 @@ public class MatrixMatrixAxpyGPUInstruction extends ArithmeticBinaryGPUInstructi long rlen2 = in2.getNumRows(); long clen2 = in2.getNumColumns(); if(isValidMMOperation(rlen1, rlen2, clen1, clen2) || isValidMVOperation(rlen1, rlen2, clen1, clen2)) { - ec.setMetaData(_output.getName(), (int)rlen1, (int)clen1); + ec.setMetaData(_output.getName(), IntUtils.toInt(rlen1), IntUtils.toInt(clen1)); } else { throw new DMLRuntimeException("Incorrect dimensions of inputs in GPU axpy operation. input1:" + rlen1 + " X " + clen1 + http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixRelationalBinaryGPUInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixRelationalBinaryGPUInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixRelationalBinaryGPUInstruction.java index df64f78..28471c4 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixRelationalBinaryGPUInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixMatrixRelationalBinaryGPUInstruction.java @@ -26,6 +26,7 @@ import org.apache.sysml.runtime.matrix.data.LibMatrixCUDA; import org.apache.sysml.runtime.matrix.operators.BinaryOperator; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.utils.GPUStatistics; +import org.apache.sysml.utils.IntUtils; public class MatrixMatrixRelationalBinaryGPUInstruction extends RelationalBinaryGPUInstruction { @@ -56,7 +57,7 @@ public class MatrixMatrixRelationalBinaryGPUInstruction extends RelationalBinary clen = clen1 > clen2 ? clen1 : clen2; } - ec.setMetaData(_output.getName(), (int)rlen, (int)clen); + ec.setMetaData(_output.getName(), IntUtils.toInt(rlen), IntUtils.toInt(clen)); BinaryOperator bop = (BinaryOperator) _optr; LibMatrixCUDA.matrixMatrixRelational(ec, ec.getGPUContext(0), getExtendedOpcode(), in1, in2, _output.getName(), bop); http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixReshapeGPUInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixReshapeGPUInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixReshapeGPUInstruction.java index ee2166e..dd0a244 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixReshapeGPUInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixReshapeGPUInstruction.java @@ -32,6 +32,7 @@ import org.apache.sysml.runtime.matrix.data.LibMatrixCUDA; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.runtime.matrix.operators.ReorgOperator; import org.apache.sysml.utils.GPUStatistics; +import org.apache.sysml.utils.IntUtils; import jcuda.Pointer; @@ -70,8 +71,8 @@ public class MatrixReshapeGPUInstruction extends GPUInstruction { @Override public void processInstruction(ExecutionContext ec) { - int rows = (int)ec.getScalarInput(_opRows.getName(), _opRows.getValueType(), _opRows.isLiteral()).getLongValue(); //save cast - int cols = (int)ec.getScalarInput(_opCols.getName(), _opCols.getValueType(), _opCols.isLiteral()).getLongValue(); //save cast + int rows = IntUtils.toInt(ec.getScalarInput(_opRows.getName(), _opRows.getValueType(), _opRows.isLiteral()).getLongValue()); //save cast + int cols = IntUtils.toInt(ec.getScalarInput(_opCols.getName(), _opCols.getValueType(), _opCols.isLiteral()).getLongValue()); //save cast BooleanObject byRow = (BooleanObject) ec.getScalarInput(_opByRow.getName(), ValueType.BOOLEAN, _opByRow.isLiteral()); GPUStatistics.incrementNoOfExecutedGPUInst(); http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/gpu/ReorgGPUInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/ReorgGPUInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/ReorgGPUInstruction.java index f191d2a..8075913 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/ReorgGPUInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/ReorgGPUInstruction.java @@ -29,6 +29,7 @@ import org.apache.sysml.runtime.matrix.data.LibMatrixCUDA; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.runtime.matrix.operators.ReorgOperator; import org.apache.sysml.utils.GPUStatistics; +import org.apache.sysml.utils.IntUtils; public class ReorgGPUInstruction extends GPUInstruction { private CPOperand _input; @@ -71,8 +72,8 @@ public class ReorgGPUInstruction extends GPUInstruction { public void processInstruction(ExecutionContext ec) { GPUStatistics.incrementNoOfExecutedGPUInst(); MatrixObject mat = getMatrixInputForGPUInstruction(ec, _input.getName()); - int rlen = (int) mat.getNumColumns(); - int clen = (int) mat.getNumRows(); + int rlen = IntUtils.toInt(mat.getNumColumns()); + int clen = IntUtils.toInt(mat.getNumRows()); //execute operation ec.setMetaData(_output.getName(), rlen, clen); LibMatrixCUDA.transpose(ec, ec.getGPUContext(0), getExtendedOpcode(), mat, _output.getName()); http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/gpu/ScalarMatrixArithmeticGPUInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/ScalarMatrixArithmeticGPUInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/ScalarMatrixArithmeticGPUInstruction.java index 2593837..d0758ff 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/ScalarMatrixArithmeticGPUInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/ScalarMatrixArithmeticGPUInstruction.java @@ -28,6 +28,7 @@ import org.apache.sysml.runtime.matrix.data.LibMatrixCUDA; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.runtime.matrix.operators.ScalarOperator; import org.apache.sysml.utils.GPUStatistics; +import org.apache.sysml.utils.IntUtils; public class ScalarMatrixArithmeticGPUInstruction extends ArithmeticBinaryGPUInstruction { @@ -46,8 +47,8 @@ public class ScalarMatrixArithmeticGPUInstruction extends ArithmeticBinaryGPUIns ScalarObject constant = (ScalarObject) ec.getScalarInput(scalar.getName(), scalar.getValueType(), scalar.isLiteral()); boolean isTransposed = false; - int rlen = isTransposed ? (int) in1.getNumColumns() : (int) in1.getNumRows(); - int clen = isTransposed ? (int) in1.getNumRows() : (int) in1.getNumColumns(); + int rlen = IntUtils.toInt(isTransposed ? in1.getNumColumns() : in1.getNumRows()); + int clen = IntUtils.toInt(isTransposed ? in1.getNumRows() : in1.getNumColumns()); ec.setMetaData(_output.getName(), rlen, clen); http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/gpu/ScalarMatrixRelationalBinaryGPUInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/ScalarMatrixRelationalBinaryGPUInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/ScalarMatrixRelationalBinaryGPUInstruction.java index bf5b017..931c651 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/ScalarMatrixRelationalBinaryGPUInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/ScalarMatrixRelationalBinaryGPUInstruction.java @@ -28,6 +28,7 @@ import org.apache.sysml.runtime.matrix.data.LibMatrixCUDA; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.runtime.matrix.operators.ScalarOperator; import org.apache.sysml.utils.GPUStatistics; +import org.apache.sysml.utils.IntUtils; public class ScalarMatrixRelationalBinaryGPUInstruction extends RelationalBinaryGPUInstruction { @@ -45,8 +46,8 @@ public class ScalarMatrixRelationalBinaryGPUInstruction extends RelationalBinary MatrixObject in1 = getMatrixInputForGPUInstruction(ec, mat.getName()); ScalarObject constant = (ScalarObject) ec.getScalarInput(scalar.getName(), scalar.getValueType(), scalar.isLiteral()); - int rlen = (int) in1.getNumRows(); - int clen = (int) in1.getNumColumns(); + int rlen = IntUtils.toInt(in1.getNumRows()); + int clen = IntUtils.toInt(in1.getNumColumns()); ec.setMetaData(_output.getName(), rlen, clen); ScalarOperator sc_op = (ScalarOperator) _optr; http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/mr/AggregateBinaryInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/mr/AggregateBinaryInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/mr/AggregateBinaryInstruction.java index 3c4a10c..894c977 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/mr/AggregateBinaryInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/AggregateBinaryInstruction.java @@ -39,6 +39,7 @@ import org.apache.sysml.runtime.matrix.mapred.MRBaseForCommonInstructions; import org.apache.sysml.runtime.matrix.operators.AggregateBinaryOperator; import org.apache.sysml.runtime.matrix.operators.AggregateOperator; import org.apache.sysml.runtime.matrix.operators.Operator; +import org.apache.sysml.utils.IntUtils; public class AggregateBinaryInstruction extends BinaryMRInstructionBase implements IDistributedCacheConsumer { private String _opcode = null; @@ -191,7 +192,7 @@ public class AggregateBinaryInstruction extends BinaryMRInstructionBase implemen // Matrix multiply A[i,k] %*% B[k,bid] // Setup input2 block - IndexedMatrixValue in2Block = dcInput.getDataBlock((int)in1.getIndexes().getColumnIndex(), bidx); + IndexedMatrixValue in2Block = dcInput.getDataBlock(IntUtils.toInt(in1.getIndexes().getColumnIndex()), bidx); MatrixValue in2BlockValue = in2Block.getValue(); MatrixIndexes in2BlockIndex = in2Block.getIndexes(); @@ -218,7 +219,7 @@ public class AggregateBinaryInstruction extends BinaryMRInstructionBase implemen // Matrix multiply A[i,k] %*% B[k,bid] // Setup input2 block - IndexedMatrixValue in1Block = dcInput.getDataBlock(bidx, (int)in2.getIndexes().getRowIndex()); + IndexedMatrixValue in1Block = dcInput.getDataBlock(bidx, IntUtils.toInt(in2.getIndexes().getRowIndex())); MatrixValue in1BlockValue = in1Block.getValue(); MatrixIndexes in1BlockIndex = in1Block.getIndexes(); http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java index 3ecb91f..4b9c2e0 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java @@ -41,6 +41,7 @@ import org.apache.sysml.runtime.matrix.data.MatrixIndexes; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.runtime.matrix.operators.ReorgOperator; import org.apache.sysml.runtime.util.UtilFunctions; +import org.apache.sysml.utils.IntUtils; public class AppendGSPInstruction extends BinarySPInstruction { private boolean _cbind = true; @@ -164,8 +165,8 @@ public class AppendGSPInstruction extends BinarySPInstruction { _cbind = cbind; _startIx = cbind ? UtilFunctions.computeBlockIndex(mc1.getCols(), mc1.getColsPerBlock()) : UtilFunctions.computeBlockIndex(mc1.getRows(), mc1.getRowsPerBlock()); - _blen = (int) (cbind ? mc1.getColsPerBlock() : mc1.getRowsPerBlock()); - _shiftBy = (int) (cbind ? mc1.getCols()%_blen : mc1.getRows()%_blen); + _blen = IntUtils.toInt(cbind ? mc1.getColsPerBlock() : mc1.getRowsPerBlock()); + _shiftBy = IntUtils.toInt(cbind ? mc1.getCols()%_blen : mc1.getRows()%_blen); _outlen = cbind ? mc1.getCols()+mc2.getCols() : mc1.getRows()+mc2.getRows(); } http://git-wip-us.apache.org/repos/asf/systemml/blob/95cbbd65/src/main/java/org/apache/sysml/runtime/instructions/spark/CastSPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/CastSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/CastSPInstruction.java index 3ff878a..6917a7c 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/spark/CastSPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/CastSPInstruction.java @@ -36,6 +36,7 @@ import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.matrix.data.MatrixIndexes; import org.apache.sysml.runtime.matrix.operators.Operator; import org.apache.sysml.runtime.util.UtilFunctions; +import org.apache.sysml.utils.IntUtils; public class CastSPInstruction extends UnarySPInstruction { @@ -86,7 +87,7 @@ public class CastSPInstruction extends UnarySPInstruction { //update schema information for output frame if( opcode.equals(UnaryCP.CAST_AS_FRAME_OPCODE) ) { sec.getFrameObject(output.getName()).setSchema( - UtilFunctions.nCopies((int)mcIn.getCols(), ValueType.DOUBLE)); + UtilFunctions.nCopies(IntUtils.toInt(mcIn.getCols()), ValueType.DOUBLE)); } } }